C++:Tic Tac Toe计算机随机移动

C++:Tic Tac Toe计算机随机移动,c++,random,tic-tac-toe,C++,Random,Tic Tac Toe,我需要帮助我的抽搐,因为我被困在这一个。 计算机做出的随机移动将覆盖旧的移动,我不知道如何修复 if (computer == 1) //computer = 1, means it's computer's turn { i = rand() % 3; j = rand() % 3; if(board[i][j] !='X' && board[i][j] != '0') { board[i][j] = '0';

我需要帮助我的抽搐,因为我被困在这一个。 计算机做出的随机移动将覆盖旧的移动,我不知道如何修复

if (computer == 1)  //computer = 1, means it's computer's turn
{
    i = rand() % 3;
    j = rand() % 3;
    if(board[i][j] !='X' && board[i][j] != '0')
    {
        board[i][j] = '0';
        computer--;  // computer = 0, means it's the player's turn
    }   
}
我的2D阵列是这样的:

char board[3][3] = 
{{'1', '2', '3'}, 
{'4', '5', '6'}, 
{'7', '8', '9'}};
这项工作:

    if (computer == 1)  //computer = 1, means it's computer's turn
        {
            bool found = false;
            while (found == false)
            {
            i = rand() % 3;
            j = rand() % 3;
            if(board[i][j] !='X' && board[i][j] != '0')
            {

            board[i][j] = '0';
            found = true;
            computer--;  // computer = 0, means it's the player's turn
            }

            }

计算机-;//computer=0,表示轮到玩家了-为什么不只是:computer=0;//意思是轮到玩家了计算机是什么类型的?还是布尔型的?计算机_turn=true。可读性++。当内部if中的条件为false时会发生什么?每次生成的数字为board[i][j]='X'&&board[i][j]='0'时,程序将进入无限循环,而不是返回并搜索另一个随机数。