Flask接口签名sign原理与实例代码浅析
242
2023-01-27
Java实现的猜数字游戏示例
本文实例讲述了java实现的猜数字游戏。分享给大家供大家参考,具体如下:
这里演示一段java语言猜数字代码,流程如下:
系统随机生成0-9中的不重复四位数字。
然后用户输入四个数字
如果数字对了,位置不对 则显示 nB,n是有几个是位置对的。
如果数字对了,位置也是对的 则显示mA,m代表有几个数字是正确位置上的。
例如:http:// 生成的是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程序设计有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~