关于猜数字规则请参考百度,效果图
代码如下(个人思路有不足请指出)
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) + "次"); } }