c++ - 选择 X 或 O 移动井字游戏

标签 c++ function tic-tac-toe

我正在制作井字游戏,我创建了一个将 X 或 O 插入数组的函数。我的设计遇到了一个问题。我调用函数为 X 移动,但是当轮到下一个玩家时,我如何让它调用 O?

有没有办法在我放置 makeMove() 之后我可以以某种方式调用它来接受 O 轮而不是 X。因为正如你所看到的,如果我做 X 它总是会要求 X 而不是 O。怎么可能我让它选择拉入 X 或 O 转弯。

问题是我只需要一个可以移动的函数。

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,这样不要混淆。

关于c++ - 选择 X 或 O 移动井字游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8043850/

相关文章:

java - 大型 TicTacToe 5x5 棋盘的非常好的启发式评估规则

c++ - 重构一个类

c++ - 最佳实践引用

javascript - 每次我打开工作表时函数都会重新计算,我只希望它在编辑时重新计算

R- 在函数内部赋值

python - 将默认值与参数名称匹配

python - TIC TAC TOE 仅接受整数

c++ - 在 MFC CListCtrl 中获取项目文本的索引

c++ - 为什么在函数中使用多个 getlines 来输入字符串会出现意外行为?

java - 无法追加 JTextArea