如何将某些内容推送到2D矢量

时间:2016-05-24 16:38:05

标签: c++ vector

我正在尝试编写Tic-Tac-Toe游戏的代码,并且无论何时轮到我都无法弄明白push_back '+'个char。

因此,每当玩家输入例如“Oben链接”时,这基本上意味着左上角我希望游戏检查正确的输入并将'+'放置在玩家选择的位置。我正在做什么虽然似乎不起作用。要么它没有保存它,要么我使用了错误的语法。

int main() {
vector < vector <char> > spielbrett(3, vector<char>('3'));
bool gewonnen = true;
string feld;

while (gewonnen) {
    cout << "Position waehlen, z. B. Oben links oder Mitte Mitte usw. " << endl;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {

            cout << spielbrett[i][j] << " ";
            if (j < 2) {
                cout << " | ";
            }

        }
        if (i < 2) {
            cout << endl << " ------------ " << endl;
        }
    }
    cout << endl << endl << endl;
    cin >> feld;
    if (feld == "Oben links") {
        spielbrett[0].push_back('+');
    }
    else if (feld == "Oben mittig") {

    }
    else if (feld == "Oben rechts") {

    }
    else if (feld == "Mitte links") {

    }
    else if (feld == "Mitte mittig") {

    }
    else if (feld == "Mittig rechts") {

    }
    else if (feld == "Unten links") {

    }
    else if (feld == "Unten mittig") {

    }
    else if (feld == "Unten rechts") {

    }
}
system("pause");
}   

1 个答案:

答案 0 :(得分:3)

您不想在此处使用push_back。由于

,矢量已经是3x3
vector < vector <char> > spielbrett(3, vector<char>('3'));

您需要做的就是直接访问这些职位。所以如果你想要左上角那么你想要

spielbrett[0][0] = '+';

右下角是

spielbrett[2][2] = '+';
相关问题