1人のプレイヤーが連続して4勝を上げるまで走り続けなければならないロックペーパーハサミゲームがあります。すべてが正しく動作しているようですが、1人のプレイヤーが4連勝になると、1時間余分にゲームが実行され、なぜ表示されません。私のループは1時間余分に実行されていますが、なぜ私は見ることができません
// while文
while(!done){
done=play1Win.consecutiveWins==4||play2Win.consecutiveWins==4;
player1Roll=random();
player2Roll=random();
//このようなものは、ALL whileループの内側にあるが、私はそれの一部を掲載します。誰もが正しい方向に私を指すことができる場合
Paper beats Rock! Player 2 wins
Player 1 wins- 0
Player 2 wins- 1
Paper beats Spock! Player 2 wins
Player 1 wins- 0
Player 2 wins- 2
Rock beats Scissors! Player 2 wins
Player 1 wins- 0
Player 2 wins- 3
Rock beats Scissors! Player 2 wins
Player 1 wins- 0
Player 2 wins- 4 // SHOULD STOP HERE
Paper beats Rock! Player 1 wins
Player 1 wins- 1
Player 2 wins- 0
:ITはLOOPの終わりに
if(player1Roll==SCISSORS&&player2Roll==PAPER){
System.out.println("Scissors beats Paper! Player 1 wins");
lastWinner=PLAYER1;
if (lastWinner==PLAYER1){
play1Win.consecutiveWins++;
play2Win.consecutiveWins=0;
}
}
if(player1Roll==PAPER&&player2Roll==ROCK){
System.out.println("Paper beats Rock! Player 1 wins");
lastWinner=PLAYER1;
if (lastWinner==PLAYER1){
play1Win.consecutiveWins++;
play2Win.consecutiveWins=0;
}
//すべて同じ'S THIS
System.out.println("Player 1 wins- " +play1Win.consecutiveWins);
System.out.println("Player 2 wins- " +play2Win.consecutiveWins);
、出力は、このですそれは素晴らしいでしょう。 ありがとう!
'へ
while (!done){...}
を書き換えるようにそれあなたの中の一部にします、 'done'はfalseです。つまり、ゲームはまだループに入り、ループ全体を終了します。簡単な修正は、ループの最後に 'done'を設定することです(つまり、whileループの最後のステートメント)。 – nbokmans
ありがとうございました!それはそれを修正した。私はそれが単純なものだと思ったが、私はそれを見ることができなかった。私はJavaにはかなり新しいです。 – user3516525