我完成了一个初学者的游戏程序,它运行正常,除非它提示用户再次播放时有点慢。它是一个do ... while循环,围绕整个main方法。我想这样做,以便用户只需输入" 1"并按下输入ONCE而不是两次以重播游戏。
我该如何解决这个问题?另外,我不确定我需要显示哪个程序部分(如果需要),所以如果您需要,请告诉我。
答案 0 :(得分:1)
这应该有用。
if (correctc == 3 && correctp == 3){
System.out.println("\nUser wins! Colour was " + colchoice);
System.out.println("Press 1 to play again with a new combo.");
pagain = myInput.readLine(); // game starts with new combo or ends
}
// User tries guessing again
else{
System.out.println("\nEnter 1 to guess again.");
loop = myInput.readLine();
}
}while("1".equals(loop)); // user continues guessing the same combo
}while("1".equals(pagain)); // new game with new combo
答案 1 :(得分:1)
这是因为readLine()等待行被" \ n"终止。 (在这种情况下输入)。你使用它两次:
pagain = myInput.readLine();
然后
loop = myInput.readLine();
Isn&#t; t" pagain"应该是你的"循环"是在做?我认为可以只使用一个变量来控制这两个循环。例如,您要求输入" 1"再次循环同一组并输入" 2"尝试新的一套。然后你可以摆脱"循环"变量。当它检查你输入" 2"时,它会走出内在的行为。