Здравствуйте! Я делаю игру "Крестики - Нолики" на Python.
Код у меня частично работает.
В чем все таки проблема?
Я хожу крестиком.
Компьютер ходит Ноликом, все работает, но почему то нолик иногда не ставится на поле, почему так?
Вот код:
import random as r
import time
# Игровое поле
playing_field = [
[[],[],[]],
[[],[],[]],
[[],[],[]]
]
# Флаги
win = False
lose = False
def game():
# Вывести игровое поле в столбик
for i in playing_field:
print(i)
while True:
movie()
def movie():
"""Основной геймплей."""
print("Ваш ход: \n"
try:
a = int(input("Укажите строку: ")
b = int(input("Укажите место: ")
robot_a = r.randint(1, 3)
robot_b = r.randint(1, 3)
except:
print("\n Ошибка! \n"
try:
# [a - 1][b - 1] Чтобы индекс совпадал с номером строки и места.
# Проверка имеется ли "X" или "O", если нет - ставится "X"
if playing_field[a-1][b-1] == "X" or playing_field[a - 1][b - 1] == "O":
print("\n Ошибка! \n"
movie()
else:
playing_field[a - 1][b - 1] = "X"
!!! ВАЖНОЕ МЕСТО !!!
# Проверка имеется ли "X" или "O", если нет - ставится "O"
while playing_field[robot_a-1][robot_b-1] != "O":
if playing_field[robot_a-1][robot_b-1] == "X" or playing_field[robot_a - 1][robot_b - 1] == "O":
robot_a = r.randint(1, 3)
robot_b = r.randint(1, 3)
else:
playing_field[robot_a-1][robot_b-1] = "O"
for i in playing_field:
print(i)
except:
print("\n Ошибка \n"
movie()
С "X" все в порядке, а с "O" не очень.
Это не полный код, так как он не поместился (ну там всеравно дальше идет просто условие выигрыша), главное находится в movie().
Пожалуйста подскажите что не так!
Код у меня частично работает.
В чем все таки проблема?
Я хожу крестиком.
Компьютер ходит Ноликом, все работает, но почему то нолик иногда не ставится на поле, почему так?
Вот код:
import random as r
import time
# Игровое поле
playing_field = [
[[],[],[]],
[[],[],[]],
[[],[],[]]
]
# Флаги
win = False
lose = False
def game():
# Вывести игровое поле в столбик
for i in playing_field:
print(i)
while True:
movie()
def movie():
"""Основной геймплей."""
print("Ваш ход: \n"
try:
a = int(input("Укажите строку: ")
b = int(input("Укажите место: ")
robot_a = r.randint(1, 3)
robot_b = r.randint(1, 3)
except:
print("\n Ошибка! \n"
try:
# [a - 1][b - 1] Чтобы индекс совпадал с номером строки и места.
# Проверка имеется ли "X" или "O", если нет - ставится "X"
if playing_field[a-1][b-1] == "X" or playing_field[a - 1][b - 1] == "O":
print("\n Ошибка! \n"
movie()
else:
playing_field[a - 1][b - 1] = "X"
!!! ВАЖНОЕ МЕСТО !!!
# Проверка имеется ли "X" или "O", если нет - ставится "O"
while playing_field[robot_a-1][robot_b-1] != "O":
if playing_field[robot_a-1][robot_b-1] == "X" or playing_field[robot_a - 1][robot_b - 1] == "O":
robot_a = r.randint(1, 3)
robot_b = r.randint(1, 3)
else:
playing_field[robot_a-1][robot_b-1] = "O"
for i in playing_field:
print(i)
except:
print("\n Ошибка \n"
movie()
С "X" все в порядке, а с "O" не очень.
Это не полный код, так как он не поместился (ну там всеравно дальше идет просто условие выигрыша), главное находится в movie().
Пожалуйста подскажите что не так!