public static void main(String[] args) {
//Implement your game here.
//INSTRUCTIONS
System.out.println("Welcome to the game Mastermind!");
System.out.println("The objective of this game is to crack the secret code within a limited number of attempts");
System.out.println("The code is made up of 4 digits and consists of digits ranging from 0-9");
System.out.println("You will have unlimited attempts to try and guess the code.");
System.out.println("Good luck and have fun!");
mainloop();
}//game implementation
//add any additional desired methods here
public static void errors() {
//RAISE ERRORS HERE
}//end of error loop
public static void mainloop() {
//Create a Randoom array of 4 values
Random rd = new Random();
int[] code4 = new int[4];
for (int ii = 0; ii < code4.length; ii++) {
code4[ii] = rd.nextInt(10);
System.out.print(code4[ii]);
}// end of for loop
//Get user input and turn into an array
Scanner scanner = new Scanner(System.in);
int array_size = 4;
int[] array = new int[array_size];
boolean is_true = false;
while (!is_true) {
for (int ii = 0; ii < array_size; ii++) {
System.out.println("Enter 4 digits of number!");
array[ii] = scanner.nextInt();
}
is_true = Arrays.equals(code4, array);
if (is_true) {
System.out.println("You got it correct");
} else {
System.out.println("Try again!");
}
}//end of while loop
//end of scanner
}//end main loop
}//end class
我正在做一项任务,我们必须重新创建游戏《Mastermind》。计算机将为用户提供一个随机的 4 位数字,该数字以数组形式给出。用户不知道该数字,必须猜测该数字。 (请注意,我打印随机数是为了进行故障排除。稍后会将其删除)
在主循环中,我获取用户输入并将该输入存储到包含 4 个值的数组中。我创建了一个布尔值 is_true 来确定随机生成的“代码”是否与用户输入相同。虽然用户输入的代码与计算机的代码不相等,但它会不断提示用户输入 4 位数字。但是,我的代码不断提示用户“输入 4 位数字”,并且从不移至 while 循环下方的 if/else 语句。我不确定我的逻辑哪里出了问题。即使我写了打印的正确的 4 位数字,shell 似乎也无法识别 array.equals(code4, array)。
非常感谢任何有关我为何陷入无限提示用户循环的帮助或解释。
我尝试重新排列不同语句在 while 循环中出现的顺序。我还尝试通过编写 is_true = Arrays.equals(code4, array); 来进行故障排除在 while 循环的末尾,然后将其移动到 while 循环的嵌套结构中。但是,我认为我的代码没有达到这种条件。