Если постановка задачи - PullRequest
0 голосов
/ 30 июля 2011

После перехода ко второму оператору if и получения нового значения char, int не похоже, что его заменяют. Любые подсказки о том, как я могу изменить это, так что после этого, если заявление значение char возвращается к целому числу?

 if (c < '9' || c > '0') 
    {
        int number = c - '0';


        if (board[number - 1] == 'X' || board[number - 1] == 'O') 
        {
            cout << "Please enter another Number";
            cin.get(c);
            cin.ignore(numeric_limits<int>::max(), '\n');


        }
        if (board[number - 1] != 'X' || board[number - 1] != 'O' ) 
        {
            if (player == 'X')
            { 
                player = 'O';
            }
            else 
            {
                player = 'X';
            }




            cout << "player " << player <<  " your number is " << number << endl;
            // Your implementation here...



            board[number - 1] = player;

        }


    }

Это продолжается:

1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
Please Enter Box Number: 1
player X your number is 1
X | 2 | 3
4 | 5 | 6
7 | 8 | 9
Please Enter Box Number: 1
Please enter another Number2
player O your number is 1
O | 2 | 3
4 | 5 | 6
7 | 8 | 9
Please Enter Box Number:

Ответы [ 2 ]

4 голосов
/ 30 июля 2011

Логические выражения c < '9' || c > '0' и board[number - 1] != 'X' || board[number - 1] != 'O' всегда верны. Это тавтологии. Это, вероятно, означает, что они не реализуют то, что вы намеревались реализовать. Вы должны рассмотреть эти выражения. Как и вы, код имеет мало смысла.

1 голос
/ 30 июля 2011

Переменная 'number' не заменяется, потому что вы ничего не присваиваете ей после оператора 'if'.Вам нужно переназначить «число» после прочтения другого символа из cin.На самом деле, лучше, если вместо одной проверки, чтобы увидеть, не занято ли это место на доске, вы зацикливаетесь, пока пользователь не войдет в незаполненный квадрат:

    while (board[number - 1] == 'X' || board[number - 1] == 'O') // loop until valid
    {
        cout << "Please enter another Number";
        cin.get(c);
        cin.ignore(numeric_limits<int>::max(), '\n');
        number = c - '0'; // update array index

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...