科学教育

标题: 洪轶丹.贪吃蛇 [打印本页]

作者: Hyd123    时间: 2025-10-16 11:59
标题: 洪轶丹.贪吃蛇
本帖最后由 Hyd123 于 2025-10-16 12:01 编辑

给我生成一个贪吃蛇代码。

作者: kaia    时间: 2025-10-16 11:59
当你创建一个贪吃蛇游戏时,你需要考虑到贪吃蛇的移动、食物的生成、撞墙和撞到自己身体的判断等。以下是一个简单的Python代码示例:

  1. import turtle
  2. import time
  3. import random

  4. delay = 0.1

  5. # 设置窗口
  6. win = turtle.Screen()
  7. win.title("贪吃蛇游戏")
  8. win.bgcolor("black")
  9. win.setup(width=600, height=600)
  10. win.tracer(0)

  11. # 初始化贪吃蛇
  12. snake = []
  13. head = turtle.Turtle()
  14. head.speed(0)
  15. head.shape("square")
  16. head.color("white")
  17. head.penup()
  18. head.goto(0, 0)
  19. head.direction = "stop"

  20. # 初始化食物
  21. food = turtle.Turtle()
  22. food.speed(0)
  23. food.shape("circle")
  24. food.color("red")
  25. food.penup()
  26. food.goto(0, 100)


  27. # 移动函数
  28. def go_up():
  29.     if head.direction != "down":
  30.         head.direction = "up"


  31. def go_down():
  32.     if head.direction != "up":
  33.         head.direction = "down


  34. def go_left():
  35.     if head.direction != "right":
  36.         head.direction = "left"


  37. def go_right():
  38.     if head.direction != "left":
  39.         head.direction = "right"


  40. def move():
  41.     if head.direction == "up":
  42.         y = head.ycor()
  43.         head.sety(y + 20)

  44.     if head.direction == "down":
  45.         y = head.ycor()
  46.         head.sety(y - 20)

  47.     if head.direction == "left":
  48.         x = head.xcor()
  49.         head.setx(x - 20)

  50.     if head.direction == "right":
  51.         x = head.xcor()
  52.         head.setx(x + 20)


  53. # 键盘控制
  54. win.listen()
  55. win.onkey(go_up, "w")
  56. win.onkey(go_down, "s")
  57. win.onkey(go_left, "a")
  58. win.onkey(go_right, "d")

  59. # 游戏主循环
  60. while True:
  61.     win.update()

  62.     if head.distance(food) < 20:
  63.         x = random.randint(-290, 290)
  64.         y = random.randint(-290, 290)
  65.         food.goto(x, y)

  66.         new_segment = turtle.Turtle()
  67.         new_segment.speed(0)
  68.         new_segment.shape("square")
  69.         new_segment.color("grey")
  70.         new_segment.penup()
  71.         snake.append(new_segment)

  72.     # 移动贪吃蛇的身体
  73.     for i in range(len(snake) - 1, 0, -1):
  74.         x = snake[i - 1].xcor()
  75.         y = snake[i - 1].ycor()
  76.         snake[i].goto(x, y)

  77.     if len(snake) > 0:
  78.         x = head.xcor()
  79.         y = head.ycor()
  80.         snake[0].goto(x, y)

  81.     move()

  82.     time.sleep(delay)

  83. win.mainloop()
复制代码


这是一个简单的贪吃蛇游戏程序,希望对你有所帮助!如果想要添加更多功能,可以继续优化。如果有任何问题,请随时向我提问。




欢迎光临 科学教育 (http://www.sci-edu.net/) Powered by Discuz! X3.2