我不明白为什么我的while循环不会停止循环时,我分配一个布尔变量(gameEnded)true
。虽然循环不会打破布尔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,并且因此循环会中断。我检查了的东西方法返回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
}
谢谢。
第一个片段:只有最后一个分配很重要,第一个和第二个没有结果 –
顺便说一下,您可以很容易地找到这些东西,但是在调试中逐步执行代码。你会看到该标志被设置为真,然后再次为假。 F10和F11是你的朋友! – oerkelens