C 中的智能计算机井字棋移动选择
Smart computer tic-tac-toe move selection in C
我敢肯定你们中的许多人已经厌倦了看到井字游戏的问题,但是对于为什么这部分没有按预期运行的任何见解,我将不胜感激。
其余代码运行良好,但就在此处,计算机并未着手,而只是重新显示棋盘并返回到用户的着法。
我确认用户和计算机标记已转移到该功能,但选择过程不起作用。它默认为for循环,从那里继续执行其他功能,但它仍然没有分配计算机标记。
我在其他地方已经有了代码,可以确保在发送到下一步之前棋盘未满。
谢谢
void cmove(char umark, char cmark)
{
int i=0;
if((board[4] == NULL))
{
board[4] == cmark;
DisplayBoard();
cwin(umark , cmark);
}
if((board[0] != NULL) && (board[1] != NULL) && (board[2] != NULL) && (board[3] != NULL) && (board[4] == umark) && (board[5] != NULL) &&
(board[6] != NULL) && (board[7] != NULL) && (board[8] != NULL))
{
board[0]= cmark;
DisplayBoard();
cwin(umark ,cmark);
}
for(i=0; i<9; i++)
{
if(board[i] == NULL)
{
board[i] == cmark;
DisplayBoard();
cwin(umark, cmark);
i=9;
}
}
}
这是比较,不是赋值:
board[i] == cmark;
您在第一个条件块中遇到了类似的问题board[4] == cmark;
打开您的编译器可以发出的所有警告以捕获此类错误。
board[4] == cmark;
这是对比,没有效果。您的意图是分配:
board[4] = cmark;
我敢肯定你们中的许多人已经厌倦了看到井字游戏的问题,但是对于为什么这部分没有按预期运行的任何见解,我将不胜感激。
其余代码运行良好,但就在此处,计算机并未着手,而只是重新显示棋盘并返回到用户的着法。
我确认用户和计算机标记已转移到该功能,但选择过程不起作用。它默认为for循环,从那里继续执行其他功能,但它仍然没有分配计算机标记。
我在其他地方已经有了代码,可以确保在发送到下一步之前棋盘未满。
谢谢
void cmove(char umark, char cmark)
{
int i=0;
if((board[4] == NULL))
{
board[4] == cmark;
DisplayBoard();
cwin(umark , cmark);
}
if((board[0] != NULL) && (board[1] != NULL) && (board[2] != NULL) && (board[3] != NULL) && (board[4] == umark) && (board[5] != NULL) &&
(board[6] != NULL) && (board[7] != NULL) && (board[8] != NULL))
{
board[0]= cmark;
DisplayBoard();
cwin(umark ,cmark);
}
for(i=0; i<9; i++)
{
if(board[i] == NULL)
{
board[i] == cmark;
DisplayBoard();
cwin(umark, cmark);
i=9;
}
}
}
这是比较,不是赋值:
board[i] == cmark;
您在第一个条件块中遇到了类似的问题board[4] == cmark;
打开您的编译器可以发出的所有警告以捕获此类错误。
board[4] == cmark;
这是对比,没有效果。您的意图是分配:
board[4] = cmark;