繁体   English   中英

用C ++输入2D数组

[英]Input into 2D Array in C++

我正在做井字游戏。 我已经能够在Java中实现这一点,但是在C ++中却遇到了一些困难。

我创建了2D数组:

char board[3][3] = { { 'A', 'B', 'C' }, { 'D', 'E', 'F' }, { 'G', 'H', 'I' } };

然后,我有以下内容,这是实际的游戏玩法。 我还有其他功能可以检查游戏的状态,还有另一个功能可以显示每个回合的棋盘。 我遇到的问题是,当任何玩家选择与第一行和第一列相对应的单元格时。 如果选择了这5个单元格中的任何一个,程序就会结束。 当用户选择其他4个单元格中的任何一个时,它会正确地将字母更改为玩家作品(X或O)。 任何帮助,将不胜感激。 谢谢!

while (checkStatus(player1) != true && checkStatus(player2) != true) {
    //player 1
    if (turn != false) {
        std::cout << "Player 1 Turn. Choose a Letter" << endl;
    }
    //player2
    else if(turn != true) {
        std::cout << "Player 2 Turn. Choose a Letter" << endl;
    }
    displayBoard();
    std::cin >> position;
    position = toupper(position);
    switch (position) {
    case 'A':
        row = 0;
        column = 0;
        break;
    case 'B':
        row = 0;
        column = 1;
        break;
    case 'C':
        row = 0;
        column = 2;
        break;
    case 'D':
        row = 1;
        column = 0;
        break;
    case 'E':
        row = 1;
        column = 1;
        break;
    case 'F':
        row = 1;
        column = 2;
        break;
    case 'G':
        row = 2;
        column = 0;
        break;
    case 'H':
        row = 2;
        column = 1;
        break;
    case 'I':
        row = 2;
        column = 2;
        break;
    default:
        cout << "You didn't enter a correct letter! Try again\n";
        game(player1,player2,turn);
    }
    cin.clear();
    //player X
    if (turn != false && board[row][column] != 'X' && board[row][column] != 'O') {
        board[row][column] = 'X';
        turn = false;
        checkStatus(player1);
        checkStatus(player2);
    }
    //player O
    else if (turn != true && board[row][column] != 'X' && board[row][column] != 'O') {
        board[row][column] = 'O';
        turn = true;
        checkStatus(player1);
        checkStatus(player2);
    } else {
        cout << "Choose a valid cell!";
        game(player1, player2, turn);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM