Java实现的猜数字游戏示例
程序员文章站
2024-02-13 23:39:16
本文实例讲述了java实现的猜数字游戏。分享给大家供大家参考,具体如下:
这里演示一段java语言猜数字代码,流程如下:
系统随机生成0-9中的不重复四位数字。...
本文实例讲述了java实现的猜数字游戏。分享给大家供大家参考,具体如下:
这里演示一段java语言猜数字代码,流程如下:
- 系统随机生成0-9中的不重复四位数字。
- 然后用户输入四个数字
- 如果数字对了,位置不对 则显示 nb,n是有几个是位置对的。
- 如果数字对了,位置也是对的 则显示ma,m代表有几个数字是正确位置上的。
例如: 生成的是0369 用户输入的是0396 则显示2a2b,两个位置是正确并且数字正确的,另外两个是数字正确,位置不正确的。
java代码:
package com.example.test; import java.util.random; import java.util.scanner; public class numbercode { int[] nums = new int[4]; int[] inputnumsarray = new int[4]; int difficultylevel; int difficulty; int aa = 0; int bb = 0; string numberstr = ""; string str = ""; /** * 生成随机数 */ public int[] randnums(int n) { for (int i = 0; i < nums.length; i++) { random ran = new random(); int a = ran.nextint(10); if (i - 1 != -1) { for (int j = 0; j < i; j++) { if (a == nums[j]) { i--; break; } else { nums[i] = a; } } } else { nums[i] = a; } } return nums; } /** * 选择游戏难度 */ public int selectlevel() { // 接受一个数字 // 1:easy 可以猜12次 // 2:common 可以猜9次 // 3:hard 可以猜7次 @suppresswarnings("resource") scanner scan = new scanner(system.in); system.out .println("请选择难度系数(输入数字),1:easy 可以猜12次;2:common 可以猜9次;3:hard 可以猜7次"); difficulty = scan.nextint(); switch (difficulty) { case 1: difficultylevel = 12; break; case 2: difficultylevel = 9; break; case 3: difficultylevel = 7; break; default: break; } return difficultylevel; } /** * 接受用户输入的数字 */ public int[] inputnums(int n) { @suppresswarnings("resource") scanner scan = new scanner(system.in); int b = scan.nextint(); for (int i = 0; i < inputnumsarray.length; i++) { int c = (int) ((int) b / math.pow(10, 3 - i)); inputnumsarray[i] = c; b = (int) (b - c * math.pow(10, (3 - i))); } return inputnumsarray; } /** * 数字比对的方法 */ public string compare(int[] answer, int[] inputs) { for (int i = 0; i < answer.length; i++) { if (inputs[i] == answer[i]) { aa += 1; continue; } else { for (int j = 0; j < answer.length; j++) { if (inputs[i] == answer[j]) { bb += 1; } } } } str = "" + aa + "a " + bb + "b "; return str; } /** * 整个游戏过程代码 */ public void play() { randnums(4); for (int i = 0; i < nums.length; i++) { numberstr = numberstr + nums[i]; } selectlevel(); system.out.println("你选择了难度系数:" + difficulty + " 共有:" + difficultylevel + "次机会。"); for (int i = 0; i < difficultylevel; i++) { inputnums(4); int chancenums = difficultylevel - i - 1; compare(nums, inputnumsarray); if (aa != 4) { if (chancenums == 0) { system.out.println("机会用完了,答案是:" + numberstr); break; } else { system.out.println(str + " 你还有" + chancenums + "次机会"); } aa = 0; bb = 0; } else if (aa == 4) { system.out.println("恭喜你,答对了"); break; } } } public static void main(string[] args) { numbercode a = new numbercode(); a.play(); } }
运行结果:
请选择难度系数(输入数字),1:easy 可以猜12次;2:common 可以猜9次;3:hard 可以猜7次
1
你选择了难度系数:1 共有:12次机会。
0123
0a 2b 你还有11次机会
2345
2a 0b 你还有10次机会
5678
2a 0b 你还有9次机会
7890
0a 2b 你还有8次机会
2378
恭喜你,答对了
运行效果如下图:
更多关于java算法相关内容感兴趣的读者可查看本站专题:《java数学运算技巧总结》、《java数据结构与算法教程》、《java操作dom节点技巧总结》、《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。