继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java----猜字符小游戏

关注TA
已关注
手记
粉丝
获赞

刚学了方法,做了个小项目,猜字符小游戏,这里和大家分享一下。
我们通过要达到的效果来分析:

            1首先命令行窗口提示用户进入猜字符游戏,并显示“猜吧”            2然后用户输入一个五位数的字符串(不能重复),接着系统进行判断            3如果字符串为"EXIT"则退出游戏            4如果没猜对则提示猜对的字符的个数和猜对位置的个数            5如果猜对则给出分数,并退出游戏            6分数的话是一个字符一百分,猜错一次扣十分。我们来分析:这个游戏需要用到哪些数据:    1.char[] ch 用来接收系统产生的随机字符    2.char[] input 用来接收用户输入的字符    3.int score 用来接收分数    4.int count 用来接收猜错次数    5.int[] result 用来存放猜对个数和猜对位置个数 定义方法:   1. public static char[] generate(){//用来生成随机字符数组                            char[] ch = new char[5];                            ...                            return ch;        }    2.public static int[] check(char[] ch,char[] input){//用来检查猜中几个和猜中位置情况                            int[] result = new int[ch.length];                            ...                            return result;    }    代码如下:   1. public static char[] generate(){                            char[] letter = new char[26];//用来存放A-Z的字符                            for(int i =0;i<letter.length;i++){                                        letter[i]=(char)(i+65);//将字母对应编码强制转换为字符并存放在数组中                            }                            int index = 0;                            boolean[] flag = new boolean[letter.length];//用来标记已经选过的字符                            char[] ch = new char[5];                            while(index<ch.length){                                             int i = (int)(Math.random()*letter.length);                                             if(flag[i]){//排除已经选过的字符                                                     contiune;                                             }                                             ch[index]=letter[i];                                             index++;                                             flag[i]=true;                            }                            return ch;        }        2.public static in[] check(char[] ch,char[] input){                                int[] result = new int[2];                                for(int i= 0;i<ch.length;i++){                                            for(int j=0;j<input.length;j++){                                                        if(ch[i]==input[j]){                                                                result[0]++;//猜中字符的个数                                                                if(i==j){                                                                        result[1]++;//猜中位置的个数                                                                        break;//如果位置判断相同则不用扫描后面的字符了                                                                }                                                        }                                            }                                }                                return result;             }             接下来开始写main函数             public static void main(String[] agrs){                                 char[] ch = generate();                                 Scanner sc =new Sacnner(System.in);                                 int count =0;                                 int score =0;                                 System.out.println("欢迎来到猜字符游戏");                                 while(true){                                                System.out.println("猜吧")                                                String str = sc.nextInt().touppercase();//把输入的字符串转换为大写                                                if(str.equal("EXIT")){                                                            System.out.println("退出");                                                            break;                                                }                                                char input = str.toCharArrays();//字符串转换为字符数组                                                int result = check(ch,input);                                                if(result[1]==ch.length){                                                        score = 100*ch.length-10*count;                                                        System.out.println("猜对了,得分:"+score)                                                        break;                                                }                                                else{                                                            System.out.println("猜对字符个数为"+result[0]+"猜对字符位置个数为"+result[1]);                                                            count++;                                                }                                 }             }             这个游戏还可以加些小功能,比如通过改变猜测的字符串的长度来改变游戏难度,或者通过分数来限制游戏猜测次数等等,这里就不多写了,大家可以尝试下。

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP