Почему я получаю ошибку с моим tkinter mainloop()
о недопустимом имени команды canvas
?Я создаю настольную игру ИИ, и я создал основной цикл.Я использую 2 списка для своих идентификаторов проверки, black_id
и white_id
, только здесь не изображенные:
def main_game_AI():
print("Read the README file first to learn how to move.")
move = input("What do you move?:")
checker_move = int(move)
where = input("What direction will you move?:")
canvas.move(black_id[checker_move],-23,-50)
print("Robot: OOOOOOoooooh!! Tricky decision! I play:")
canvas.move(white_id[3], -23,50)
white3 = 18
print("We start with the",first_side,"side.")
while gameOn == True:
main_game_AI()
root.destroy()
root.mainloop()
В моем цикле запускается main_game_AI()
, затем я запускаю root.mainloop()
дляTkinter GUI для работы.Но я должен использовать root.destroy()
, поэтому цикл продолжается.Это хорошо работает для первой итерации.Но когда я вставил тестовые данные для второй итерации, я получил следующую ошибку:
Traceback (most recent call last):
File "chineseCheckersAI.py", line 86, in <module>
main_game_AI()
File "chineseCheckersAI.py", line 77, in main_game_AI
canvas.move(black_id[checker_move],-23,-50)
File "/anaconda3/lib/python3.7/tkinter/__init__.py", line 2588, in move
self.tk.call((self._w, 'move') + args)
_tkinter.TclError: invalid command name ".!canvas"