如何检查' x'或者' o' o发生在至少一列?

时间:2017-03-11 17:46:07

标签: c arrays multidimensional-array tic-tac-toe

我做了一个tic tac toe游戏,我想检查是否' x'或者' o' o在整个列或一行中,游戏板是3X3矩阵 我写下了一个实现它的代码(列部分),但问题是循环只计算第一列 输出:
enter image description here
第一列被计算,x赢了。

enter image description here
即使该列已满了“x'”,x也不会赢,游戏会继续。

注意:为了目的,它被指定为x。在输出中,为了测试目的,o在游戏的其余部分处于索引2,2处。

这是我的代码:

int win(char board[][COL])
{
    int flag = 0;
    int x = 0, o = 0;
    int i = 0, j = 0;
    for (i = 0; i < COL; i++) // this loop checks who won by fillin a column
    {
        if (board[i][j] == 'x')
        {
            x++;
        }
        if (x == COL)
        {
            flag = 1;
            printf("x won!\n");
        }
    }
    return flag;
}

1 个答案:

答案 0 :(得分:0)

您只是在检查第一列。

int win(char board[][COL])
{
    int flag = 0;
    int x = 0, o = 0;
    int i = 0, j = 0;
    for(j = 0; j < 3 ; j++)
    {
       x=0;
       for (i = 0; i < COL; i++) // this loop checks who won by fillin a column
       {
           if (board[i][j] == 'x')
           {
               x++;
           }
           if (x == COL)
           {
               flag = 1;
               printf("x won!\n");
           }
       }
    }
    return flag;
}