我正在玩井字游戏,以学习如何为棋盘生成2D阵列。我可以做得很好,我的问题是如何遍历整个董事会,看看是否有赢家或平局。
这是我目前拥有的代码,我知道必须有一种更好的方法来执行此操作,但我在执行该操作时遇到了困难。
这是我所拥有的
该代码可以检查X或0是否赢了,但在平局的情况下不起作用。反正用for循环来做到这一点?
感谢您的任何帮助
-着墨
这是我目前拥有的代码,我知道必须有一种更好的方法来执行此操作,但我在执行该操作时遇到了困难。
这是我所拥有的
C#:
private bool calculateWinner()
{
bool isWinner = false;
if (board[0, 0] == "X" && board[0, 1] == "X" && board[0, 2] == "X" ||
board[1, 0] == "X" && board[1, 1] == "X" && board[1, 2] == "X" ||
board[2, 0] == "X" && board[2, 1] == "X" && board[2, 2] == "X" ||
board[0, 0] == "X" && board[1, 1] == "X" && board[2, 2] == "X" ||
board[0, 0] == "X" && board[1, 1] == "X" && board[2, 2] == "X" ||
board[0, 2] == "X" && board[1, 1] == "X" && board[2, 0] == "X")
{
winner = "Player 1";
resetBoard();
tie = 0;
isWinner = true;
}
else if (board[0, 0] == "0" && board[0, 1] == "0" && board[0, 2] == "0" ||
board[1, 0] == "0" && board[1, 1] == "0" && board[1, 2] == "0" ||
board[2, 0] == "0" && board[2, 1] == "0" && board[2, 2] == "0" ||
board[0, 0] == "0" && board[1, 1] == "0" && board[2, 2] == "0" ||
board[0, 0] == "0" && board[1, 1] == "0" && board[2, 2] == "0" ||
board[0, 2] == "0" && board[1, 1] == "0" && board[2, 0] == "0")
{
winner = "Player 2";
resetBoard();
tie = 0;
isWinner = true;
}
else if (turn > 8)
{
tie = 1;
}
if (tie != 0)
{
winner = "Tie";
isWinner = true;
resetBoard();
}
return isWinner;
}
该代码可以检查X或0是否赢了,但在平局的情况下不起作用。反正用for循环来做到这一点?
感谢您的任何帮助
-着墨