繁体   English   中英

如何将某些东西推回到2D矢量中

[英]How to push_back something into a 2D 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");
}   

你不想在这里使用push_back 由于矢量已经是3x3,因此

vector < vector <char> > spielbrett(3, vector<char>('3'));

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

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

右下角是

spielbrett[2][2] = '+';

暂无
暂无

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

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