私は、訓練の目的で単純なコンソールベースのモンスター戦闘ゲームを構築しています。C#他のユーザー入力処理の問題
私はそれが必要なところにあるwhileループを作成しましたが、ユーザーが間違った選択肢を入力すると、最終的な「誤入力」タイプのメッセージが画面上で無限にループします。
誰かが修正をお願いしますか?
または、try、catch例外ハンドラを使用する必要があります(私はまだあまりよくありません)。
P.S変数ブールacceptInputは、このコードセグメントに含まれていないクラスの先頭に初期化されます。
はコードは次の、ありがとう。
while (!acceptInput)
{
if (playerChoice == "a" || playerChoice == "h")
{
if (playerChoice == "a")
{
player.PlayerAttack();
if (random.NextDouble() > .9)
{
Console.WriteLine("You missed!");
Console.WriteLine("Press ENTER to continue");
Console.ReadLine();
}
else
{
Console.WriteLine("It's a hit!");
monster.MonsterDecreaseHealth(player.AttackPower);
Console.WriteLine("Press ENTER to continue");
Console.ReadLine();
}
acceptInput = true;
}
else if (playerChoice == "h")
{
player.PlayerHeal();
acceptInput = true;
}
}
else
{
Console.WriteLine("That is not a valid choice, please enter either A or H");
}
}
ような何かをするだろう。 –
無効な入力でループ条件を変更していないので、何が変わるのですか?プレイヤーから 'playerChoice'をループ内に取得する必要があります。そうしないと、決して変更されません。 – itsme86
なぜ 'while(!acceptInput)'が反転しているのですか? 'while(acceptInput)'だけが混乱しているように見えるのはなぜですか? '〜**は入力を受け入れていないのと同じように読むことができます。 – Seabizkit