Tic Tac Toe 2D字符数组在行= 0,列= 0--C中未更新

时间:2018-10-29 22:41:59

标签: c

很抱歉,这是一个简单的解决方法,但我似乎在这里找不到错误。我正在用C进行井字游戏。程序中的所有内容似乎都能正常运行,除了数组左上角的位置([0] [0]或1,1,其中row-1和col- 1)。人类玩家和计算机玩家都可以在该地点输入他们的令牌,但是下次玩家移动时它将删除令牌。我的代码如下:

我遇到的问题是这样的:

The current state of the game is:
_ _ _ 
_ _ _ 
_ _ _ 
Player 1 enter your selection [row, col]: 2,1
The current state of the game is:
_ _ _ 
O _ _ 
_ _ _ 
Player 2 has entered [row, col]: 3,1
The current state of the game is:
_ _ _ 
O _ _ 
X _ _ 
Player 1 enter your selection [row, col]: 1,1
The current state of the game is:
O _ _ 
O _ _ 
X _ _ 
Player 2 has entered [row, col]: 3,3
The current state of the game is:
_ _ _ 
O _ _ 
X _ X 

这里到底是什么问题?感谢您的协助。

1 个答案:

答案 0 :(得分:0)

问题在于以下功能。您的if语句只有一个=符号。这导致位置0, 0设置为'_'并返回false。

_Bool check_table_full(char board[SIZE][SIZE])
{
int a, b;
for (a=0; a<SIZE; a++) {
    for (b=0; b<SIZE; b++) {
        if (board[a][b]=='_') {  // <==== Fixed the double equal sign
            return false;
        }
        else {
            return true;
        }
    }
}
}

我当然会建议您随时清理格式。另外,您在上面提到您正在使用GCC。对于像这样的简单学习程序,您可能应该使用-Wall进行编译,以显示所有警告。该代码也会标记其他一些问题。