• 1000 oop. Я попытался поместить этот оператор if в
bottom
, потому что я думал, что функция
root.mainloop()
заставляет программу работать с l oop, но это тоже не сработало.
import tkinter as tk
root = tk.Tk()
x1 = y1 = 250
direc = "none"
score = 0
walls = ["250 250"]
score_box = tk.Label(root, text=score)
score_box.pack()
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()
canvas.create_rectangle(x1, y1, x1+10, y1+10)
def draw_rect():
canvas.create_rectangle(x1, y1, x1+10, y1+10, fill="green")
def score_add():
global score, x1, y1
score += 1
score_box["text"] = score
coords = str(x1) + " " + str(y1)
if coords in walls:
print(f"you lose! your final score was {score}")
root.destroy()
walls.append(coords)
def move(event):
global x1, y1, direc
if event.char == "d":
x1 += 10
direc = "right"
draw_rect()
if event.char == "a":
x1 -= 10
direc = "left"
draw_rect()
if event.char == "s":
y1 += 10
direc = "down"
draw_rect()
if event.char == "w":
y1 -= 10
direc = "up"
draw_rect()
score_add()
# doesn't run at all
if direc == "up":
y1 -= 10
print("test")
draw_rect()
score_add()
# runs once only at the start
print("hello")
root.bind("<Key>", move)
root.mainloop()
Любая помощь будет принята с благодарностью