Я создал простой лабиринт, и у меня нет способа переместить персонажа к цели. Лабиринт находится в окне TKinter, поэтому я не знаю, мешает ли это запуску кода.
Я пытался использовать pynput, который работал в отдельной программе без запуска окна tkinter, поэтому я не понимаю, что же не так.
def level1():
x=1
startx = 1
objectivex = 10
y=1
starty=1
objectivey=10
val_in_row = [[0,1,2,3,4,5,6,7,8,9,10,11],[0,3,7,11],[0,1,5,7,8,9,11],[0,3,5,6,11],[0,2,4,7,9,10,11],[0,4,6,10,11],[0,1,3,8,9,11],[0,1,3,5,6,11],[0,5,8,9,11],[0,2,4,6,9,11],[0,1,6,7,9,11],[0,1,2,3,4,5,6,7,8,9,10,11]]
board = Tk()
board.title("LEVEL 1")
for i in range(0,len(val_in_row)):
for j in val_in_row[i]:
Button(board, text=" ").grid(row=i, column=j)
Label(board, text="U").grid(row=y, column=x)
Label(board, text="O").grid(row=10, column=10)
Label(board, text=" ").grid(row=6, column=13)
Button(board, text="restart", command = restart).grid(row=9, column=21)
def on_press(key):
if key == Key.right:
right()
elif key == Key.left:
left()
elif key == Key.up:
up()
elif key == Key.down:
down()
with Listener(on_press=on_press) as listener:
listener.join()
board.mainloop()
Я надеялся, что окно tkinter было открыто, и код все еще выполнялся, так что он обнаруживал бы живые события клавиатуры.