怎样用C语言,写3×3以上的井字游戏?

主要是他判断输赢的语句怎么写?搜了好多井子游戏,都只有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";
}