JAVA---猜字游戏

来源:互联网 发布:java page cache 编辑:程序博客网 时间:2024/06/04 18:56
/** * 猜字符游戏 1.设计数据结构  * a.char[] chs;//随机生成的字符数组 *  b.char[] input;//用户输入的字符数组  *  c.int * letterRight;//字符对的个数  * D.int positionRight;//位置对的个数  * e.int[] result;//对比的结果 * f.int score;//得分  * g.int count;//猜错的次数  * 2.设计程序结构:  * 方法  * 主方法:main方法 * 随机生成字符数组:public static char generate(){ * char[] chs=new char[5]; *.... * return chs; * } *  * 对比随机生成字符数组和用户输入字符数组 * public static int[] check(char[] chs,char[] input) { * int[] result=new int[2]; * return result; * } * 3.设计算法 * */public class Guessing {    //主方法    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        char[] chs=generate();//随机生成字符数组        System.out.println(chs);        int count=0;        while(true) {             System.out.println("请输入您猜的字符:");            String str = scanner.next();            if(str.equal("exit")) {                System.out.println("退出游戏,下次再见!!");                break;            }            char[] input=str.toCharArray();//用户定义的字符数组----str.toCharArray()字符串转换为字符数组            int[] check=check(chs,input);//对比数组方法调用            if((check[0]==5)&&(check[1]==5)) {                System.out.println("恭喜你猜对了,最终得分:"+(500-count*10)+"分");                break;            }else {                count++;                System.out.println("字符对:"+check[0]+"个     "+"位置对:"+check[1]+"个");            }        }    }    //随机生成字符数组    public static char[] generate() {        char[] chs=new char[5];        //算法        for(int i=0;i<chs.length;i++) {            char c=(char)(Math.random()*25+65);//随机生成字符            boolean flag=true;//开关            for(int j=0;j<chs.length;j++) {                if(c==chs[j]) {// A 0 0 0 0                    flag=false;                    i--;//防止不赋值而造成字符数组元素为空                    break;                }            }            if(flag) {                chs[i]=c;//存储字符            }        }        return chs;//返回字符数组    }    //对比随机生成字符和用户输入字符数组    public static int[] check(char[] chs,char[] input) {        int[] result=new int[2];//对比结果     存放字符对的个数以及位置对的个数        //算法        for(int i=0;i<chs.length;i++) {//遍历随机字符数组            for(int j=0;j<input.length;j++) {//遍历用户定义的字符数组                if(chs[i]==input[j]) {                    result[0]++;//字符比较  加1                    if(i==j) {                        result[1]++;//位置比较 加1                    }                    break;//跳出内循环                }            }        }        return result;    }}
原创粉丝点击