因此,我正在编写一个 C 程序,该程序将针对用户播放 TicTacTo。但是,我遇到了检查是否有赢家的功能的问题。它似乎根本不起作用。当连续有 3 个时,游戏才继续。这是相关的代码。
这是我的主要功能:
do {
humanChoice(); // let the user make a play
computerChoice(); // does nothing at the moment
gameStatus = checkWin(); // returns 1 if it finds a winner
} while(gameStatus==0);
humanChoice 在数组中用户选择的位置播放“X”。这已经过彻底测试并且可以完美运行。然后是 checkWin() 函数:
int checkWin() {
if (
matrix[0][0] == matrix[0][1] == matrix[0][2] || // 1st row
matrix[1][0] == matrix[1][1] == matrix[1][2] || // 2nd row
matrix[2][0] == matrix[2][1] == matrix[2][2] || // 3rd row
matrix[0][0] == matrix[1][0] == matrix[2][0] || // 1st column
matrix[0][1] == matrix[1][1] == matrix[2][1] || // 2nd column
matrix[0][2] == matrix[1][2] == matrix[2][2] || // 3rd column
matrix[0][0] == matrix[1][1] == matrix[2][2] || // left to right diagonal
matrix[0][2] == matrix[1][1] == matrix[2][0] // right to left diagonal
) {
printf("Win! Game Over!");
return(1);
}
return(0);
}
我正在为我的“矩阵”使用以下二维数组:
char matrix[3][3];
我意识到现在程序无法区分计算机获胜和用户获胜。现在这无关紧要。我只需要它来检查一般的胜利。
你注意到什么了吗?