2016-05-22 2 views
1

Я изучаю C++ из книги «Прыжки в C++», а после раздела enum и switch-case говорится, что мы должны написать игру Tictactoe.
Я написал игру, объявив счетчик tictactoe, включая три состояния, которые пусты, o и x, и объявили 9 позиций в качестве пустых. но после тестирования программы я увидел, что я не могу изменить позиции доски от пустого до всего. Это моя ошибка или это то, как работают перечисления?Изменение перечислений после объявления один раз C++

Например:

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. 

В коде, он делает печать доску каждые 2 ходов, но он всегда показывает все boardpositions пустым.

+1

Пожалуйста, узнайте, как создать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve), который вы можете нам показать, это поможет вам намного легче. –

+0

Можете ли вы хотя бы показать, что вы пытались сделать, так как непонятно, какая часть перечисления вам непонятна. –

+0

Нет, это не то, как перечислены работы. Да, это ошибка в коде. –

ответ

4

Вы хотите

case 1: { Board1 = TTT_X; break; } 

Таким образом изменить существующую переменную. С Tictactoe Board1 = TTT_X; вы объявляете новую переменную, которая сразу же уничтожается.

+0

Большое спасибо, он работал – kaptrow

Смежные вопросы