Patrice T
Здесь много ошибок, и несколько раз
while((box[0] || box[1] || box[2] || box[3] || box[4] || box[5] || box[6] || box[7] || box[8] !='X') || (box[0] || box[1] || box[2] || box[3] || box[4] || box[5] || box[6] || box[7] || box[8] !='O'))
Первая проблема: ваше понимание
(box[0] || box[1] || ... || box[7] || box[8] !='X')
Это не то, что вы думаете, это понимается как
(box[0] || box[1] || ... || box[7] || (box[8] !='X'))
Вторая проблема логика
while((box[0] !='X') || (box[0] !='O'))
поле[0] всегда будет отличаться по крайней мере от 1 из них. Итак,
while
будет петлять вечно.
Я думаю, что было бы проще считать ходы
while(moves <9)
Совет: учитесь как можно скорее.
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя-отладчик. Освоение отладчика не является обязательным, оно обязательно для любого программиста, без исключения.
Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков:
отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.
Отладчик-Википедия, свободная энциклопедия[
^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[
^]
Базовая отладка с помощью Visual Studio 2010-YouTube[
^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.