Advertisement
AlfonsoPEREZ

LEFT HAND FIRST

Apr 27th, 2020
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.95 KB | None | 0 0
  1. import turtle, time, sys                  
  2.  
  3.  
  4. wn = turtle.Screen()
  5. wn.bgcolor("powderblue")                
  6. wn.setup(1300,700)
  7. wn.tracer(0)
  8.  
  9. pen=turtle.Turtle()
  10. pen.hideturtle()
  11. pen.up()
  12. pen.color("white")
  13. pen.goto(0, -250)
  14. pen.write("LEFT HAND RULE VISUALIZATION ALGORITHM",False,"center",font=("Arial Narrow",20,"bold"))
  15.  
  16.  
  17. class Maze(turtle.Turtle):                
  18.     def __init__(self):
  19.         turtle.Turtle.__init__(self)
  20.         self.shape("square")            
  21.         self.color("white")            
  22.         self.penup()                  
  23.         self.speed(0)                
  24.  
  25. class End(turtle.Turtle):
  26.     def __init__(self):
  27.         turtle.Turtle.__init__(self)
  28.         self.shape("square")
  29.         self.color("green")
  30.         self.penup()
  31.         self.speed(0)
  32.  
  33.  
  34. class sprite(turtle.Turtle):
  35.     def __init__(self):
  36.         turtle.Turtle.__init__(self)
  37.         self.shape("square")
  38.         self.color("yellow")
  39.         self.setheading(270)
  40.         self.penup()
  41.         self.speed(0)
  42.  
  43.  
  44.     def spriteDown(self):
  45.         if (self.heading() == 270):                  
  46.             x_walls = round(sprite.xcor(),0)        
  47.             y_walls = round(sprite.ycor(),0)
  48.             if (x_walls, y_walls) in finish:        
  49.                 pen.clear()
  50.                 pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
  51.                 endProgram()
  52.             if (x_walls +24, y_walls) in walls:        
  53.                 if(x_walls, y_walls -24) not in walls:  
  54.                     self.forward(24)
  55.                 else:
  56.                     self.right(90)
  57.             else:
  58.                 self.left(90)
  59.                 self.forward(24)
  60.  
  61.  
  62.     def spriteleft(self):
  63.         if (self.heading() == 0):
  64.             x_walls = round(sprite.xcor(),0)
  65.             y_walls = round(sprite.ycor(),0)
  66.             if (x_walls, y_walls) in finish:
  67.                 pen.clear()
  68.                 pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
  69.                 endProgram()
  70.             if (x_walls, y_walls +24) in walls:      
  71.                 if(x_walls +24, y_walls) not in walls:
  72.                     self.forward(24)
  73.                 else:
  74.                     self.right(90)
  75.             else:
  76.                 self.left(90)
  77.                 self.forward(24)
  78.  
  79.  
  80.     def spriteUp(self):
  81.         if (self.heading() == 90):
  82.             x_walls = round(sprite.xcor(),0)
  83.             y_walls = round(sprite.ycor(),0)
  84.             if (x_walls, y_walls) in finish:  
  85.                 pen.clear()
  86.                 pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
  87.                 endProgram()
  88.             if (x_walls -24, y_walls ) in walls:  
  89.                 if (x_walls, y_walls + 24) not in walls:
  90.                     self.forward(24)
  91.                 else:
  92.                     self.right(90)
  93.             else:
  94.                 self.left(90)
  95.                 self.forward(24)
  96.  
  97.     def spriteRight(self):
  98.         if (self.heading() == 180):
  99.  
  100.             x_walls = round(sprite.xcor(),0)
  101.             y_walls = round(sprite.ycor(),0)
  102.             if (x_walls, y_walls) in finish:  
  103.                 pen.clear()
  104.                 pen.write("FINISHED",False,"center",font=("Arial Narrow",20,"bold"))
  105.                 endProgram()
  106.             if (x_walls, y_walls -24) in walls:  
  107.                 if (x_walls - 24, y_walls) not in walls:
  108.                     self.forward(24)
  109.                 else:
  110.                     self.right(90)
  111.             else:
  112.                 self.left(90)
  113.                 self.forward(24)
  114.  
  115. def endProgram():
  116.     wn.exitonclick()
  117.     sys.exit()
  118.  
  119. def setup(grid):
  120.     for y in range(len(grid)):                        
  121.         for x in range(len(grid[y])):                
  122.             character = grid[y][x]                  
  123.             screen_x = -588 + (x * 24)
  124.             screen_y = 288 - (y * 24)          
  125.  
  126.             if character == "+":                  
  127.                 mazeee.goto(screen_x, screen_y)    
  128.                 mazeee.stamp()                        
  129.                 walls.append((screen_x, screen_y))  
  130.  
  131.             if character == "o":                      
  132.                 end.goto(screen_x, screen_y)      
  133.                 end.stamp()                      
  134.                 finish.append((screen_x, screen_y))
  135.             if character == "c":                    
  136.                 sprite.goto(screen_x, screen_y)  
  137.  
  138. mazeee = Maze()              
  139. sprite = sprite()            
  140. end = End()                
  141. walls =[]        
  142. finish = []                
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162. #MAIN PROGRAM
  163. grid = [
  164. "++++++++++++++++++++++++++++++++++++++++++++++",
  165. "+c                                           +",
  166. "++++++++ ++++  +++++++++++++  +++++++  ++++  +",
  167. "+  +        +                 +        +     +",
  168. "+  +++++++  +++++++++++                +++++++",
  169. "+  +     +  +           +  +                 +",
  170. "+  +  +  +  +  +        +  +  ++++++++++++++ +",
  171. "+  +  +o +  +  +  +     +  +  +  +        +  +",
  172. "+  +  ++++  +  ++++++++++  +  +  ++++  +  +  +",
  173. "+  +     +  +              +           +  +  +",
  174. "+  ++++  +  +      +++++++++  ++++++++++++++++",
  175. "+     +  +                    +           +  +",
  176. "++++  +  +++++++        +++++++  ++++++++++  +",
  177. "+  +  +                          +     +  +  +",
  178. "+ ++  ++++  +++++++++++++     ++++  +  +  +  +",
  179. "+  +  +     +     +     +     +     +     +  +",
  180. "+  +  +  +++++++  ++++        +  +++++++++   +",
  181. "+                                            +",
  182. "++++  +  +                       +++++++++++++",
  183. "++++++++++++++++++++++++++++++++++++++++++++++",
  184. ]
  185.  
  186. setup(grid)            
  187.  
  188. wn.update()
  189. time.sleep(1)
  190.  
  191. while True:
  192.         wn.update()
  193.         sprite.spriteRight()
  194.         sprite.spriteDown()
  195.         sprite.spriteleft()
  196.         sprite.spriteUp()
  197.  
  198.         time.sleep(0.01)
  199.  
  200. wn.mainloop()
  201. #MADE BY AVMP
  202. #https://www.youtube.com/channel/UCQor7IURWM-lGT-tmFbFSCw
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement