2016-05-22 2 views
1

Ich lerne C++ aus dem Buch "Springen in C++" und nach dem Enum und Switch-Case-Kapitel heißt es, dass wir ein Tictactoe-Spiel schreiben sollten.
Ich schrieb das Spiel, indem ich einen Tictactoe-Enumerator deklarierte, der drei Zustände enthielt, die leer waren, o und x und 9 Boardpositionen als leer deklarierten. Aber nachdem ich das Programm getestet hatte, sah ich, dass ich die Board-Positionen nicht von leer auf irgendwas ändern konnte. Ist das mein Fehler oder funktionieren die Aufzählungen?Ändern von Enumerationen nach der Deklaration einmal C++

Zum Beispiel:

enum Tictactoe{ 
    TTT_O, 
    TTT_X, 
    TTT_Blank}; 
    Tictactoe Board1 = TTT_Blank; 
    //goes all the way until board position 9 
    int input; 
    cout << "X, chose a pile which you want to mark << endl; 
    cin>> input; 
    switch (input) { 
    case 1: { Tictactoe Board1 = TTT_X; break; } 
    //again, goes all the way until all the board positions are checked. 

Im Code tut es dem Board alle 2 bewegt drucken, aber es zeigt immer alle boardpositions leer.

+1

Bitte lernen Sie, wie Sie ein [minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) erstellen, das Sie uns zeigen können. Es wird Ihnen viel leichter helfen. –

+0

Können Sie zumindest zeigen, was Sie versucht haben, da unklar ist, welcher Teil von enum Ihnen unklar ist. –

+0

Nein, so funktionieren Aufzählungen nicht. Ja, es ist ein Fehler im Code. –

Antwort

4

Sie wollen

case 1: { Board1 = TTT_X; break; } 

Auf diese Weise können die vorhandenen Variablen ändern. Mit Tictactoe Board1 = TTT_X; deklarieren Sie eine neue Variable, die dann sofort zerstört wird.

+0

Vielen Dank, es hat funktioniert – kaptrow

Verwandte Themen