Java写在控制台运行的英国著名猜数字游戏
程序员文章站
2024-03-18 16:57:52
...
关于猜数字规则请参考百度,效果图
代码如下(个人思路有不足请指出)
import java.util.*;
class bullsCows
{
public static void main(String[]args)
{
System.out.println("猜数字");
int[]sj = new int[4];
for (int i = 0; i < 4; i++) //随机生成4个数字
{
sj[i] = (int)(1+Math.random() * 9);
//System.out.print(sj[i]); //用于测试显示随机数结果
}
while (sj[0] == sj[1] || sj[0] == sj[2] || sj[0] == sj[3] || sj[1] ==
sj[2] || sj[1] == sj[3] || sj[2] == sj[3])
{
System.out.print(" ");
for (int i = 0; i < 4; i++) //如果四个数字有相同的数字再重新生成
{
sj[i] = (int)(1+Math.random() * 9);
//System.out.print(sj[i]); //用于测试显示随机数结果
}
}
int a = 0;
int b = 0;
int ci = 0;
while (a != 4)
{
Scanner input = new Scanner(System.in); //用户输入四位数
System.out.print("\n请输入四位数(每位数字不相同):");
double num = input.nextDouble();
int num1 = (int)num;
int[]sr = new int[4];
sr[0] = num1 / 1000 % 10;
sr[1] = num1 / 100 % 10;
sr[2] = num1 / 10 % 10;
sr[3] = num1 % 10;
a = 0;
b = 0;
for (int i = 0; i < 4; i++) //判断几A几B
{
if (sr[i] == sj[i])
{
a++;
}
for (int j = 0; j < 4; j++)
{
if (i != j && sr[i] == sj[j])
{
b++;
}
}
}
if (a != 4){ System.out.println(a + "A" + b + "B ,不正确请重新输入 ,消耗" + (++ci) + "次"); } //输出结果
}
System.out.println(a + "A" + b + "B, 完全正确 ! 消耗" + (++ci) + "次");
}
}