basic maze problem with turtle

baujacob at gmail.com baujacob at gmail.com
Sun Oct 13 18:18:27 EDT 2013


On Sunday, October 13, 2013 2:52:50 PM UTC-7, bauj... at gmail.com wrote:
> Hi everyone, I'm trying to create a simple maze program. When the user finishes the maze, I want to print in big letters "You Win!" and when the user hits a wall, I want the user to go back to the beginning of the maze. The problem is "collision detection" which is an advanced topic and I'm only in a beginning programming class. Is there anyway I can force the user back to the starting point when the turtle hits the wall? Thank you in advance.


Sorry about that, I realized I forgot to include the code.
So basically I have one turtle that draws the maze at the beginning and then another turtle(userTurtle) that completes the maze. When the userTurtle hits any point on the wall, I want to force userTurtle back to the start of the maze.
 Here it is:

import turtle
userTurtle = turtle.Turtle()
draw = turtle.Turtle()
scr = turtle.Screen()

def drawMaze():
    draw.pencolor("gold")
    draw.pensize(3)
    draw.penup()
    draw.goto(0,-180)
    draw.pendown()
    draw.speed(10)
    draw.setheading(180)
    draw.fd(180)
    draw.setheading(90)
    draw.fd(60)
    draw.setheading(0)
    draw.fd(120)
    draw.backward(120)
    draw.setheading(90)
    draw.fd(300)
    draw.setheading(0)
    draw.fd(120)
    draw.setheading(-90)
    draw.fd(120)
    draw.setheading(180)
    draw.fd(60)
    draw.setheading(90)
    draw.fd(60)
    draw.setheading(-90)
    draw.fd(120)
    draw.setheading(90)
    draw.fd(60)
    draw.setheading(0)
    draw.fd(120)
    draw.setheading(-90)
    draw.fd(60)
    draw.setheading(0)
    draw.fd(60)
    draw.setheading(-90)
    draw.fd(60)
    draw.backward(60)
    draw.setheading(0)
    draw.fd(60)
    draw.setheading(90)
    draw.fd(60)
    draw.penup()
    draw.setheading(180)
    draw.fd(60)
    draw.pendown()
    draw.setheading(90)
    draw.fd(60)
    draw.setheading(180)
    draw.fd(60)
    draw.setheading(90)
    draw.fd(60)
    draw.setheading(0)
    draw.fd(120)
    draw.setheading(-90)
    draw.fd(60)
    draw.backward(60)
    draw.setheading(0)
    draw.fd(60)
    draw.setheading(-90)
    draw.fd(240)
    draw.setheading(180)
    draw.fd(60)
    draw.setheading(-90)
    draw.fd(60)
    draw.setheading(180)
    draw.fd(120)
    draw.setheading(90)
    draw.fd(60)
    draw.setheading(180)
    draw.fd(60)
    draw.setheading(90)
    draw.fd(60)
    draw.backward(60)
    draw.setheading(180)
    draw.fd(60)
    draw.penup()
    draw.setheading(0)
    draw.fd(300)
    draw.pendown()
    draw.setheading(-90)
    draw.fd(120)
    draw.setheading(180)
    draw.fd(120)
    draw.ht()
    
    userTurtle.penup()
    userTurtle.goto(-30,180)
    userTurtle.setheading(-90)
    
def mazeGame():
    scr.bgcolor("#0070ff")

def m1():
    userTurtle.setheading(90)
    userTurtle.fd(30)
    userTurtle.pos()
    print(userTurtle.pos())

def m2():
    userTurtle.setheading(180)
    userTurtle.fd(30)
    userTurtle.pos()
    print(userTurtle.pos())

def m3():
    userTurtle.setheading(360)
    userTurtle.fd(30)
    userTurtle.pos()
    print(userTurtle.pos())

def m4():
    userTurtle.setheading(-90)
    userTurtle.fd(30)
    userTurtle.pos()
    print(userTurtle.pos())

scr.onkeypress(m1, "Up")
scr.onkeypress(m2, "Left")
scr.onkeypress(m3, "Right")
scr.onkeypress(m4, "Down")
    
scr.listen()
        
drawMaze()
mazeGame()




More information about the Python-list mailing list