Java实现的猜数字游戏示例

网友投稿 206 2023-07-28

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小时内删除侵权内容。

上一篇:angular6.0使用教程之父组件通过url传递id给子组件的方法
下一篇:详解Angular6.0使用路由步骤(共7步)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~