お世話になっております。
以下のプログラムですが、猫は通った部分がピンクに塗られていくのですが、プログラムにはエラーメッセージが出ておらず動きません。
どこを修正して良いのかわからないので教えて頂ければ幸いです。よろしくお願いいたします。
import tkinter
key=""
def key_down(e):
global key
key=e.keysym
def key_up(e):
global key
key=""
mx=1
my=1
def main_proc():
global mx,my,key
if key == "Up" and maze[my-1][mx] == 0:
my = my - 1
if key == "Down" and maze[my+1][mx] == 0:
my = my + 1
if key == "Left" and maze[my][mx-1] == 0:
mx = mx - 1
if key == "Right" and maze[my][mx+1] == 0:
mx = mx + 1
if maze[my][mx] == 0:
maze[my][mx] = 2
canvas.create_rectangle(mx80,my80,mx80+79,my80+79,fill="pink",
width=0)
canvas.delete("MYCHR")
canvas.create_image(mx80+40,my80+40,image=img,tag="MYCHR")
root.after(300,main_proc)
root=tkinter.Tk()
root.title("迷路を塗るニャン")
root.bind("<KeyPress>",key_down)
root.bind("<KeyRelease>",key_up)
canvas=tkinter.Canvas(width=800,height=560,bg="white")
canvas.pack()
maze=[
[1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,1,0,0,1],
[1,0,1,1,0,0,1,0,0,1],
[1,0,0,1,0,0,0,0,0,1],
[1,0,0,1,1,1,1,1,0,1],
[1,0,0,0,0,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1]
]
for y in range(7):
for x in range(10):
if maze[y][x]== 1:
canvas.create_rectangle(x80,y80,x80+79,y80+79,
fill="skyblue",width=0)
img=tkinter.PhotoImage(file="mimi_s.png")
canvas.create_image(mx80+40,my80+40,image=img,tag="MYCHR")
main_proc()
root.mainloop()
回答2件
あなたの回答
tips
プレビュー