java----猜字符小游戏
2018-02-07 23:24
417 查看
刚学了方法,做了个小项目,猜字符小游戏,这里和大家分享一下。
我们通过要达到的效果来分析:
我们通过要达到的效果来分析:
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++; } } } 这个游戏还可以加些小功能,比如通过改变猜测的字符串的长度来改变游戏难度,或者通过分数来限制游戏猜测次数等等,这里就不多写了,大家可以尝试下。
相关文章推荐
- day06-java-(方法,猜字符小游戏)
- Java学习之基础训练三-----猜字符小游戏(自定义函数,在main函数中调用)
- java小游戏之控制台下五子棋!
- 黑马程序员:Java基础总结----字符字节转换流&system.in&out
- java字节流和字符流的比较哦啊
- Java-IO之BufferedReader(字符缓冲输入流)
- java中文字符编码3
- Java去除字符串中特殊字符
- Java判断字符是否为数字字符!...
- 不可见字符会引起的java.lang.NumberFormatException: For input string: "15"
- 从零开始学习算法(Java实现)~~~~之字符串篇~~~判断两个字符串是否是颠倒字母顺序构成的
- JAVA读取属性文件含中文字符
- java-回合制小游戏
- java 判断是否中文字符
- JAVA 字节流与字符流
- Java - XML字符支持报错An invalid XML character
- java小游戏-坦克大战,事后总结
- java 字节流读取图片,字符流读取,二进制读取
- java.sql.SQLException: ORA-00911: 无效字符 异常解除
- SQL插入语句中有单引号 && SQL中char nchar varchar nvarchar的区别 && Java中字符(串)和数值类型的转换