Как я могу завершить вложенные циклы while, если доска заполнена?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу завершить вложенные циклы while, если доска заполнена?

Сообщение Anonymous »

Я перепробовал немало решений, поэтому моя программа немного запутана, но я все еще не могу найти способ проверить наличие "_" и завершить игру, если их не осталось. На самом деле я бы предпочел, чтобы они сломались в тот момент, когда доска заполнится, но пока ничего не работает, и я больше ничего не понимаю.
Вот моя программа:

Код: Выделить всё

grid = [['0','1','2','3'],['1','_','_','_'], ['2','_','_','_'],['3','_','_','_']]
print("Tic-Tac-Toe")
for row in grid:
print(row)

for row in grid:
for cell in row:
if cell != '_':

valid_input = False
while not valid_input:
x_x = int(input("Choose x-coordinate for x: "))
x_y = int(input("Choose y-coordinate for x: "))

if x_x < 1 or x_x > 3 or x_y < 1 or x_y > 3:
print("Invalid input for x. Please try again.")
elif grid[x_x][x_y] != '_':
if '_' in grid == False:
break
else:
print("The place is occupied. Choose another place for x.")
else:
grid[x_x][x_y] = 'x'
for row in grid:
print(row)
valid_input = True

valid_input = False
while not valid_input:
o_x = int(input("Choose x-coordinate for o: "))
o_y = int(input("Choose y-coordinate for o: "))

if o_x < 1 or o_x > 3 or o_y < 1 or o_y > 3:
print("Invalid input for o. Please try again.")
elif grid[o_x][o_y] != '_':
if '_' in grid == False:
break
else:
print("The place is occupied. Choose another place for o.")
else:
grid[o_x][o_y] = 'o'
for row in grid:
print(row)
valid_input = True
Я думал, что это потребует от вас еще одной попытки после того, как игра «закончена», но затем вырвется из всего цикла. Это не так. Он просит меня поставить еще одну букву "о" на неопределенный срок.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -is-filled
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу завершить вложенные циклы while, если доска заполнена?
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Почему мои вложенные циклы while не работают должным образом? [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Чтобы напечатать шаблон в Python, используя вложенные циклы for
    Гость » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Гость
  • Как оптимизировать вложенные циклы для тензорных операций в NumPy/TensorFlow?
    Гость » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость
  • Вложенные циклы for внутри параллельных циклов for дают неправильные результаты.
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»