なぜブール変数(gameEnded)をtrue
に割り当てるとwhileループがループを止めないのか分かりません。whileループがboolでブレークしないC#
Board board = new Board();
bool gameEnded = false;
while (!gameEnded)
{
gameEnded = board.DrawCheck(board); //one of these three methods returns true
gameEnded = board.WinCheckO(board);
gameEnded = board.WinCheckX(board);
Render(board);
bool turnO = false;
Console.WriteLine("Player X's turn.");
//... here some code that gets executed right
}
したがって、gameEndedブール変数にはtrueの値を割り当てる必要があります。したがって、ループは中断します。 Check 何かのメソッドがtrueを返すことを確認しました。 修正されたバージョンはうまく動作します。つまり、ループが中断されます。
Board board = new Board();
bool gameEnded = false;
while (!gameEnded)
{
if (board.WinCheckX(board))
{
Console.WriteLine("X player won!");
break;
}
else if (board.WinCheckO(board))
{
Console.WriteLine("O player won!");
break;
}
else if (board.DrawCheck(board))
{
Console.WriteLine("It's a tie!");
break;
}
Render(board);
bool turnO = false;
Console.WriteLine("Player X's turn.");
//... here some code that gets executed right
}
ありがとうございます。
最初のフラグメント:最後の割り当てだけが重要で、最初と2番目の結果はありません –
これは簡単に発見できましたが、デバッグでコードをステップ実行する方法です。あなたは旗が真に、そして再び偽に設定されているのを見たでしょう。 F10とF11はお友達です! – oerkelens