#python
#python
Вопрос:
Я пишу игру в крестики-нолики на python 2 для моего класса CompSci, используя SimpleGUI. У меня есть 2D-массив, установленный таким образом, что всякий раз, когда игрок нажимает в определенной области на холсте, он рисует X или O в этой области, а также записывает один из элементов массива, который должен быть установлен на эту букву. Это работает нормально. Я определил функцию для проверки каждой строки массива, чтобы проверить, выиграл ли игрок, и это выглядит примерно так:
def checkRows():
if len(set(grid[0])) == 1:
winner = grid[0][0]
if len(set(grid[1])) == 1:
winner = grid[1][0]
if len(set(grid[2])) == 1:
winner = grid[2][0]
Кроме того, у меня есть счетчик, который увеличивается на единицу каждый раз, когда заполняется квадрат, и цикл while в конце, который запускает функцию checkRows, пока счетчик меньше 9 (потому что 9 — это максимальное количество квадратов, которые нужно заполнить, чтобы один игрок выиграл). Это выглядит примерно так:
while counter < 9:
checkRows()
if winner == "X":
frame.add_label("X wins!", 100)
elif winner == "O":
frame.add_label("O Wins!", 100)
Каждый раз, когда я запускаю код, он выдает ошибку во время выполнения со словами «TimeLimitError: программа превысила ограничение по времени выполнения.», иногда в первой, иногда во второй строке функции. Кто-нибудь знает, что может быть причиной этого?
Комментарии:
1. Не могли бы вы добавить ошибку во время выполнения в сообщение, это помогло бы нам диагностировать проблему ^_^
2. Это звучит как ошибка в соревновательной сессии программирования. Вы запускаете свою программу в системе оценки URI?
3. Я уже сталкивался с подобным вопросом раньше. Включен ли ваш код пользовательского ввода в синхронизацию? Этого не должно быть, поскольку ваш код ничего не делает в ожидании ввода пользователем.