私はユーザーが色を推測するハングマンゲームを作っています。私がしたいのは、ユーザーが5つ以上のヒントを間違って取得した場合(5つのヒントすべてを通過した場合)、ユーザーが失ったと表示されます。 whileループが終了すると(単語が正しいか、5つのヒントをすべて経ています)、勝ったかどうかを知らせます。 これが行うコードの一部である:whileループ印刷時に永久に繰り返すステートメント
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String color = getColor();
String result = EmptyStr(color);
String[] hints = getHints(color);
System.out.println("Please enter a letter:");
char letter = in.next().charAt(0);
//-----------------------------------------------------------
int wrong = 0;
while (wrong<6){
if (checkLetter(color, letter)){
// result was previously defined elsewhere so don't worry about it
result = Result(color, result, letter);
System.out.println("Correct guess! here is your word so far: " + result);
System.out.println("Lifelines left: " + (5 - wrong));
if (result.equals(color)){
System.out.println("congratulations! You Won!");
break;
}
}
else{
wrong ++;
System.out.println(hints[0]);
System.out.println("Lifelines left: " + (5 - wrong));
}
}
// also not sure what to put here after player wins or loses: System.out.println("Sorry! You lost! The correct word was: " + color);
} result = Result(color, result, letter); System.out.println("Correct guess! here is your word so far: " + result); System.out.println("Lifelines left: " + (5 - wrong));
繰り返し永遠
しかし、I入力1文字と、それが正しいですか、。私は知りたい:なぜそれは永遠に繰り返すのだろうか?また、どのように動作させるために修正することができますか?
'checkLetter'が' true'を返すと仮定すると、 'result'が' color'と等しい場合にのみ 'break'します - もしループしなければ –
@ScaryWombatしかし、私はもう一つの文字を再入力してそれが文字の色 –
その場合、**あなたのロジックを並べ替える必要があります。多分あなたは 'char letter = in.next()。charAt(0);'をループに入れたいかもしれません。 –