Guest User

python2343564321

a guest
Jun 19th, 2021
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1.  
  2. import turtle
  3. import time
  4. import random
  5.  
  6. delay = 0.1
  7.  
  8. #window
  9. print("hello")
  10. wn = turtle.Screen()
  11. wn.title("Snake Game")
  12. wn.bgcolor("green")
  13. wn.setup(width=600, height=600)
  14. wn.tracer(0)
  15.  
  16. #snake
  17. head = turtle.Turtle()
  18. head.speed(0)
  19. head.shape("square")
  20. head.color("black")
  21. head.penup()
  22. head.goto(0,0)
  23. head.direction = "stop"
  24.  
  25. #snake food
  26. food = turtle.Turtle()
  27. food.speed(0)
  28. food.shape("circle")
  29. food.color("red")
  30. food.penup()
  31. food.goto(0,100)
  32.  
  33. segments = []
  34. #functions
  35. def go_up():
  36. head.direction = "up"
  37.  
  38. def go_down():
  39. head.direction = "down"
  40.  
  41. def go_right():
  42. head.direction = "right"
  43.  
  44. def go_left():
  45. head.direction = "left"
  46.  
  47. #keyboard bindings
  48. wn.listen()
  49. wn.onkeypress(go_up, "w")
  50. wn.onkeypress(go_down, "s")
  51. wn.onkeypress(go_left, "a")
  52. wn.onkeypress(go_right, "d")
  53.  
  54. def move():
  55. if head.direction == "up" :
  56. y = head.ycor()
  57. head.sety(y + 20)
  58. if head.direction == "down" :
  59. y = head.ycor()
  60. head.sety(y - 20)
  61. if head.direction == "left" :
  62. x = head.xcor()
  63. head.setx(x - 20)
  64. if head.direction == "right" :
  65. x = head.xcor()
  66. head.setx(x + 20)
  67.  
  68. #mainloop
  69. while True:
  70. wn.update()
  71.  
  72. #check for collision with food
  73. if head.distance(food) < 20:
  74. #move food
  75. x = random.randint(-290, 290)
  76. y = random.randint(-290, 290)
  77. food.goto(x, y)
  78. #Add a segment
  79. new_segment = turtle.Turtle()
  80. new_segment.speed(0)
  81. new_segment.shape("square")
  82. new_segment.color("black")
  83. new_segment.penup()
  84. segments.append(new_segment)
  85.  
  86. #move last segments first
  87. for index in range(len (segments)-1, 0, -1):
  88. x = segments[index-1].xcor()
  89. y = segments[index-1].ycor()
  90. segments[index].goto(x, y)
  91. #Move 0 to where head is
  92. if len(segments) > 0:
  93. x = head.xcor()
  94. y = head.ycor()
  95. segments[0].goto(x, y)
  96. #check if snake is off border
  97. if head.xcor()>300 or head.xcor()<-300 or head.ycor()>300 or head.ycor()<-300:
  98. time.sleep(1)
  99. head.goto(0,0)
  100. head.direction = "stop"
  101.  
  102. #Hide the segments
  103. for segments in segments:
  104. segments.goto(1000, 1000)
  105. #clear segments
  106. segments.clear()
  107.  
  108. move()
  109.  
  110. time.sleep(delay)
  111.  
  112. wn.mainloop()
  113.  
  114. turtle.done()
Advertisement
Add Comment
Please, Sign In to add comment