主要是他判断输赢的语句怎么写?搜了好多井子游戏,都只有3×3的,请求帮助!
参考地址:https://blog.csdn.net/weixin_38184741/article/details/106308892
如有帮助,望点击我回答右上角【采纳】按钮。
char* tictactoe(char** board, int boardSize){
int i, j, value, flag;
//行
flag = 0;
for(i=0; i<boardSize; i++)
{
value = 0;
for(j=0; j<boardSize; j++)
{
if ('X' == board[i][j])
value++;
else if ('O' == board[i][j])
value--;
else if(' ' == board[i][j])
flag++;
}
if(value == boardSize)
return "X";
else if(0 == (value+boardSize))
return "O";
}
if(!flag)
return "Draw";
//列
flag = 0;
for(i=0; i<boardSize; i++)
{
value = 0;
for(j=0; j<boardSize; j++)
{
if ('X' == *(board[j]+i))
value++;
else if ('O' == *(board[j]+i))
value--;
else if(' ' == board[j][i])
flag=1;
}
if(value == boardSize)
return "X";
else if(0 == (value+boardSize))
return "O";
}
if(!flag)
return "Draw";
//正向对角线
value = 0;
flag = 0;
for(i=0; i<boardSize; i++)
{
if ('X' == board[i][i])
value++;
else if ('O' == board[i][i])
value--;
}
if(value == boardSize)
return "X";
else if(0 == (value+boardSize))
return "O";
//反向对角线
value = 0;
for(i=0; i<boardSize; i++)
{
if ('X' == board[i][boardSize-i-1])
value++;
else if ('O' == board[i][boardSize-i-1])
value--;
}
if(value == boardSize)
return "X";
else if(0 == (value+boardSize))
return "O";
return "Pending";
}