ABC学习网

Python turtle实现贪吃蛇游戏

热度:4℃发布时间:2023-12-29 13:32:59

本文实例为大家分享了Python turtle实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下

# Simple Snake Game in Python 3 for Beginners import turtleimport timeimport random delay = 0.1 # Scorescore = 0high_score = 0 # Set up the screenwn = turtle.Screen()wn.title("Snake Game by @TokyoEdTech")wn.bgcolor("green")wn.setup(width=600, height=600)wn.tracer(0) # Turns off the screen updates # Snake headhead = turtle.Turtle()head.speed(0)head.shape("square")head.color("black")head.penup()head.goto(0, 0)head.direction = "stop" # Snake foodfood = turtle.Turtle()food.speed(0)food.shape("circle")food.color("red")food.penup()food.goto(0, 100) segments = [] # Penpen = turtle.Turtle()pen.speed(0)pen.shape("square")pen.color("white")pen.penup()pen.hideturtle()pen.goto(0, 260)pen.write("Score: 0 High Score: 0", align="center", font=("Courier", 24, "normal")) # Functions def go_up(): if head.direction != "down": head.direction = "up" def go_down(): if head.direction != "up": head.direction = "down" def go_left(): if head.direction != "right": head.direction = "left" def go_right(): if head.direction != "left": head.direction = "right" def move(): if head.direction == "up": y = head.ycor() head.sety(y + 20) if head.direction == "down": y = head.ycor() head.sety(y - 20) if head.direction == "left": x = head.xcor() head.setx(x - 20) if head.direction == "right": x = head.xcor() head.setx(x + 20) # Keyboard bindingswn.listen()wn.onkeypress(go_up, "Up")wn.onkeypress(go_down, "Down")wn.onkeypress(go_left, "Left")wn.onkeypress(go_right, "Right") # Main game loopwhile True: wn.update() # Check for a collision with the border if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290: time.sleep(1) head.goto(0, 0) head.direction = "stop" # Hide the segments for segment in segments: segment.goto(1000, 1000) # Clear the segments list segments.clear() # Reset the score score = 0 # Reset the delay delay = 0.1 pen.clear() pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) # Check for a collision with the food if head.distance(food) < 20: # Move the food to a random spot x = random.randint(-290, 290) y = random.randint(-290, 290) food.goto(x, y) # Add a segment new_segment = turtle.Turtle() new_segment.speed(0) new_segment.shape("square") new_segment.color("grey") new_segment.penup() segments.append(new_segment) # Shorten the delay delay -= 0.001 # Increase the score score += 10 if score > high_score: high_score = score pen.clear() pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) # Move the end segments first in reverse order for index in range(len(segments)-1, 0, -1): x = segments[index-1].xcor() y = segments[index-1].ycor() segments[index].goto(x, y) # Move segment 0 to where the head is if len(segments) > 0: x = head.xcor() y = head.ycor() segments[0].goto(x, y) move() # Check for head collision with the body segments for segment in segments: if segment.distance(head) < 20: time.sleep(1) head.goto(0, 0) head.direction = "stop" # Hide the segments for segment in segments: segment.goto(1000, 1000) # Clear the segments list segments.clear() # Reset the score score = 0 # Reset the delay delay = 0.1 # Update the score display pen.clear() pen.write("Score: {} High Score: {}".format( score, high_score), align="center", font=("Courier", 24, "normal")) time.sleep(delay) wn.mainloop()

Python turtle实现贪吃蛇游戏

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ABC学习网。

(window.slotbydup = window.slotbydup || []).push({id: "u6915441",container: "_5rmj5io5v3i",async: true});
网友评论
评论
发 布

更多编程教程
  • 编程教程推荐
更多+