Tic-Tac-Toe游戏奇怪的象征

时间:2017-01-28 16:04:18

标签: c++

我现在正在做一个TTT游戏。但每当我尝试打印电路板时,我都会得到类似的结果:https://gyazo.com/b080017e24acd68972ab4913e9cd2548

我的问题是那些奇怪的符号是什么以及如何摆脱它们

void TicTacToeGame::printBoard()
{
    cout << "\n";
    cout << "|1 2 3| \n";
    for (int i = 0; i < 3; i++)
    {
        cout << "------\n";
        cout << i+1 << "|" << board[i][0] << "|" << board[i][1] << "|" << board[i][2] << "|\n";
    }
    cout << "------\n";
}

编辑: 我在这里开始:

void TicTacToeGame::playGame()
{
    char player1 = 'X';
    char player2 = 'O';
    char currentPlayer = 'X';

    bool isDone = false;

    int x, y;

    while (isDone == false)
    {
        printBoard();

        x = getXCoord();
        y = getYCoord();

        if (placeMarker(x, y, currentPlayer) == false)
        {
            cout << "can't place it here!\n";
        }
        else
        {
            changePlayers(currentPlayer, player1, player2);
        }
    }
}

EDIT2:

已修复,谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

那些'奇怪的符号'是unicode字符。在声明您的电路板后,char值只是随机符号,board元素还应该包含什么?

您必须像这样初始化您的电路板:
声明:

char board[3][3] = {
    {' ',' ',' '},
    {' ',' ',' '},
    {' ',' ',' '}
};

或者在构造函数/一些初始化方法中:

board = {
    {' ',' ',' '},
    {' ',' ',' '},
    {' ',' ',' '}
};

现在你的电路板应该只包含空格。