Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import turtle, time, sys
- wn = turtle.Screen()
- wn.bgcolor("powderblue")
- wn.setup(1300,700)
- wn.tracer(0)
- pen=turtle.Turtle()
- pen.hideturtle()
- pen.up()
- pen.color("white")
- pen.goto(0, -250)
- pen.write("LEFT HAND RULE VISUALIZATION ALGORITHM",False,"center",font=("Arial Narrow",20,"bold"))
- class Maze(turtle.Turtle):
- def __init__(self):
- turtle.Turtle.__init__(self)
- self.shape("square")
- self.color("white")
- self.penup()
- self.speed(0)
- class End(turtle.Turtle):
- def __init__(self):
- turtle.Turtle.__init__(self)
- self.shape("square")
- self.color("green")
- self.penup()
- self.speed(0)
- class sprite(turtle.Turtle):
- def __init__(self):
- turtle.Turtle.__init__(self)
- self.shape("square")
- self.color("yellow")
- self.setheading(270)
- self.penup()
- self.speed(0)
- def spriteDown(self):
- if (self.heading() == 270):
- x_walls = round(sprite.xcor(),0)
- y_walls = round(sprite.ycor(),0)
- if (x_walls, y_walls) in finish:
- pen.clear()
- pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
- endProgram()
- if (x_walls +24, y_walls) in walls:
- if(x_walls, y_walls -24) not in walls:
- self.forward(24)
- else:
- self.right(90)
- else:
- self.left(90)
- self.forward(24)
- def spriteleft(self):
- if (self.heading() == 0):
- x_walls = round(sprite.xcor(),0)
- y_walls = round(sprite.ycor(),0)
- if (x_walls, y_walls) in finish:
- pen.clear()
- pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
- endProgram()
- if (x_walls, y_walls +24) in walls:
- if(x_walls +24, y_walls) not in walls:
- self.forward(24)
- else:
- self.right(90)
- else:
- self.left(90)
- self.forward(24)
- def spriteUp(self):
- if (self.heading() == 90):
- x_walls = round(sprite.xcor(),0)
- y_walls = round(sprite.ycor(),0)
- if (x_walls, y_walls) in finish:
- pen.clear()
- pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
- endProgram()
- if (x_walls -24, y_walls ) in walls:
- if (x_walls, y_walls + 24) not in walls:
- self.forward(24)
- else:
- self.right(90)
- else:
- self.left(90)
- self.forward(24)
- def spriteRight(self):
- if (self.heading() == 180):
- x_walls = round(sprite.xcor(),0)
- y_walls = round(sprite.ycor(),0)
- if (x_walls, y_walls) in finish:
- pen.clear()
- pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
- endProgram()
- if (x_walls, y_walls -24) in walls:
- if (x_walls - 24, y_walls) not in walls:
- self.forward(24)
- else:
- self.right(90)
- else:
- self.left(90)
- self.forward(24)
- def endProgram():
- wn.exitonclick()
- sys.exit()
- def setup(grid):
- for y in range(len(grid)):
- for x in range(len(grid[y])):
- character = grid[y][x]
- screen_x = -588 + (x * 24)
- screen_y = 288 - (y * 24)
- if character == "+":
- mazeee.goto(screen_x, screen_y)
- mazeee.stamp()
- walls.append((screen_x, screen_y))
- if character == "o":
- end.goto(screen_x, screen_y)
- end.stamp()
- finish.append((screen_x, screen_y))
- if character == "c":
- sprite.goto(screen_x, screen_y)
- mazeee = Maze()
- sprite = sprite()
- end = End()
- walls =[]
- finish = []
- #MAIN PROGRAM
- grid = [
- "++++++++++++++++++++++++++++++++++++++++++++++",
- "+c +",
- "++++++++ ++++ +++++++++++++ +++++++ ++++ +",
- "+ + + + + +",
- "+ +++++++ +++++++++++ +++++++",
- "+ + + + + + +",
- "+ + + + + + + + ++++++++++++++ +",
- "+ + +o + + + + + + + + + +",
- "+ + ++++ + ++++++++++ + + ++++ + + +",
- "+ + + + + + + +",
- "+ ++++ + + +++++++++ ++++++++++++++++",
- "+ + + + + +",
- "++++ + +++++++ +++++++ ++++++++++ +",
- "+ + + + + + +",
- "+ ++ ++++ +++++++++++++ ++++ + + + +",
- "+ + + + + + + + + +",
- "+ + + +++++++ ++++ + +++++++++ +",
- "+ +",
- "++++ + + +++++++++++++",
- "++++++++++++++++++++++++++++++++++++++++++++++",
- ]
- setup(grid)
- wn.update()
- time.sleep(1)
- while True:
- wn.update()
- sprite.spriteRight()
- sprite.spriteDown()
- sprite.spriteleft()
- sprite.spriteUp()
- time.sleep(0.01)
- wn.mainloop()
- #MADE BY AVMP
- #https://www.youtube.com/channel/UCQor7IURWM-lGT-tmFbFSCw
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement