我正在制作Tic Tac Toe游戏,并创建了一个将X或O插入我的数组的函数。我的设计遇到了一个问题。我调用该函数以使X移开,但是当下一个玩家回合时,我该如何使其变为O?

在我放入makeMove()之后,是否可以通过某种方式调用它而不是X进行O形转弯。因为如您所见,如果我执行X,它总是会要求X而不是O。我怎么做选择拉X或O弯。

问题是我只需要一个函数就可以 Action 。

int main()
{
    while(SOME CONDITION HERE)
    {
        printBoard();
        cout << "Player X please choose a position: ";
        makeMove('X');
        cout << "Player O please choose a position: ";
        makeMove('O');
    }
}


int makeMove(char marker)
{
    int choosePosition = 0;

    cin >> choosePosition;

    ticTacBoard[choosePosition - 1] = marker;
}

最佳答案

从此开始:

int main()
{
    while(SOME CONDITION HERE)
    {
        printBoard();
        cout << "Player X please choose a position: ";
        makeMove('X');
        cout << "Player O please choose a position: ";
        makeMove('O');
    }
}


int makeMove(char marker)
{
    int choosePosition = 0;

    cin >> choosePosition;

    ticTacBoard[choosePosition - 1] = marker;
}

请注意,您将要更改SOME CONDITION HERE部分,但可以快速将其替换为1并获得与当前脚本相同的行为(实际上好一点)。

但是您最终将需要在其中放置有意义的内容-可以告诉程序停止提示玩家排名的东西,例如,宣布获胜者。

以下是做同一件事的更简化的方法:
int main()
{
    while(SOME CONDITION HERE)
    {
        printBoard();

        makeMove('X');
        makeMove('O');
    }
}


int makeMove(char marker)
{
    cout << "Player " << marker << " please choose a position: ";

    int choosePosition = 0;

    cin >> choosePosition;

    ticTacBoard[choosePosition - 1] = marker;

    return 0;
}

请注意添加的return 0 -如果您不希望返回某些内容,则应该使makeMove返回void,以免造成混淆。

10-06 06:05