0

我完成了一个初学者的游戏程序,它运行良好,只是在提示用户再次玩时它有点慢。这是一个围绕整个 main 方法的 do...while 循环。我想让它让用户只需要输入“1”并按一次输入,而不是两次就可以重播游戏。

我怎样才能解决这个问题?另外,我不确定我需要展示我的程序的哪一部分(如果需要),所以如果你需要,请告诉我。

4

2 回答 2

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
于 2013-06-10T23:31:56.973 回答
1

原因是 readLine() 等待 line 被 "\n" 终止(在这种情况下是输入)。你使用它两次:

pagain = myInput.readLine(); 

接着

loop = myInput.readLine();

“pagain”不应该做你的“循环”正在做什么吗?我相信可以只使用一个变量来控制这两个循环。例如,您要求输入“1”以再次循环同一组并输入“2”以尝试使用新组。然后你可以摆脱“循环”变量。当它检查您是否输入了“2”时,它将退出内部执行。

于 2013-06-10T23:34:05.010 回答