Estou tendo problemas quando o pacman colide com a parede. Eu inseri um labirinto e usando um loop for desenhei o labirinto, o movimento do pacman também está funcionando bem, mas quando atinge uma parede, quero que pare.
Como posso fazer com que ele pare e aguarde a entrada do usuário para mudar de direção usando as teclas? O que eu tentei foi usar uma variável para dizer que ela parou e iria parar, mas não responderia a nenhuma das teclas que eu inseriria para que ela se movesse novamente
maze = [
"XXXXXXXXXXXXXXXXXXXXXXXXX",
"XP XXXXXXXE XX",
"X XXXXXXX XXXXXX XXXXX",
"X XX XXXXXX XXXXX",
"X XX XXX EXX",
"XXXXXX XX XXX XX",
"XXXXXX XX XXXXXX XXXXX",
"XXXXXX XX XXXX XXXXX",
"X XXX XXXX XXXXX",
"X XXX XXXXXXXXXXXXXXXXX",
"X XXXXXXXXXXXXXXX",
"X XXXXXXXX",
"XXXXXXXXXXXX XXXXX X",
"XXXXXXXXXXXXXXX XXXXX X",
"XXX XXXXXXXXXX X",
"XXXE X",
"XXX XXXXXXXXXXXXX",
"XXXXXXXXXX XXXXXXXXXXXXX",
"XXXXXXXXXX X",
"XX XXXXX X",
"XX XXXXXXXXXXXXX XXXXX",
"XX YXXXXXXXXXXX XXXXX",
"XX XXXX X",
"XXXXE X",
"XXXXXXXXXXXXXXXXXXXXXXXXX"
]
def move():
if player.direction=="right":
player.setx(player.xcor()+7)
if player.direction=="left":
player.setx(player.xcor()-7)
if player.direction=="up":
player.sety(player.ycor()+7)
if player.direction=="down":
player.sety(player.ycor()-7)
def right():
player.direction="right"
def left():
player.direction="left"
def up():
player.direction="up"
def down():
player.direction="down"
def exit():
turtle.bye()
screen=turtle.Screen()
screen.bgcolor("black")
screen.setup(900,900)
screen.tracer(n=0)
walllist=[]
x=-365
y=360
for r in maze:
for h in r:
if h=="X":
wall=turtle.Turtle()
wall.color("blue")
wall.shapesize(1.43,1.43,1)
wall.shape("square")
wall.penup()
wall.goto(x,y)
walllist.append(wall)
if h=="P":
player=turtle.Turtle()
player.speed(0)
player.color("yellow")
player.shape("circle")
player.penup()
player.direction="stop"
player.goto(x,y)
x+=30
x=-365
y-=30
screen.listen()
screen.onkey(right,"Right")
screen.onkey(up,"Up")
screen.onkey(down,"Down")
screen.onkey(left,"Left")
screen.onkey(exit,"Escape")
while True:
move()
screen.update()
for wall in walllist:
if player.distance(wall)<29:
player.direction="stop"