Пишу консольную игру "Крестики Нолики".
В коде есть цикл range. И в нем есть строчка, где если пользователь ставит знак (крестик или нолик) в то место где уже стоит другой знак, то он пропускает ход.
Мне нужно изменить так, что бы когда пользователь ставил знак уже на занятое место, то ему говорили, что это место занято, и он попробовал поставить крестик или нолик в другую позицию.
def winner():
if area[0][0] == 'X' and area[0][1] == 'X' and area[0][2] == 'X':
return 'X'
elif area[1][0] == 'X' and area[1][1] == 'X' and area[1][2] == 'X':
return 'X'
elif area[2][0] == 'X' and area[2][1] == 'X' and area[2][2] == 'X':
return 'X'
elif area[0][0] == 'X' and area[1][0] == 'X' and area[2][0] == 'X':
return 'X'
elif area[0][1] == 'X' and area[1][1] == 'X' and area[2][1] == 'X':
return 'X'
elif area[0][2] == 'X' and area[1][2] == 'X' and area[2][2] == 'X':
return 'X'
elif area[0][0] == 'X' and area[1][1] == 'X' and area[2][2] == 'X':
return 'X'
elif area[0][2] == 'X' and area[1][1] == 'X' and area[2][0] == 'X':
return 'X'
if area[0][0] == '0' and area[0][1] == '0' and area[0][2] == '0':
return '0'
elif area[1][0] == '0' and area[1][1] == '0' and area[1][2] == '0':
return '0'
elif area[2][0] == '0' and area[2][1] == '0' and area[2][2] == '0':
return '0'
elif area[0][0] == '0' and area[1][0] == '0' and area[2][0] == '0':
return '0'
elif area[0][1] == '0' and area[1][1] == '0' and area[2][1] == '0':
return '0'
elif area[0][2] == '0' and area[1][2] == '0' and area[2][2] == '0':
return '0'
elif area[0][0] == '0' and area[1][1] == '0' and area[2][2] == '0':
return '0'
elif area[0][2] == '0' and area[1][1] == '0' and area[2][0] == '0':
return '0'
return '*'
area = [['*', '*', '*'],
['*', '*', '*'],
['*', '*', '*']]
step = 0
for i in range(9):
step += 1
print(f'Ход {step}')
if step % 2 == 1:
print('Ходят крестики')
sumbol = 'X'
else:
print('Ходят нолики')
sumbol = '0'
row = int(input('Введите номер строки: (от 0 до 2) '))
coulumn = int(input('Введите номер столбца: (от 0 до 2) '))
if area[row][coulumn] == '*':
area[row][coulumn] = sumbol
else:
print('Это место занято, вы пропускаете ход!')
continue
for j in area:
print(j)
if winner() == 'X':
print('Победили крестики!')
break
elif winner() == '0':
print('Победили нолики!')
break
elif step == 9 and winner() == '*':
print('Ничья!')