科学教育

搜索
查看: 870|回复: 1
打印 上一主题 下一主题

陈若冰

[复制链接]

3

主题

3

帖子

19

积分

新手上路

Rank: 1

积分
19
跳转到指定楼层
楼主
发表于 2025-10-16 12:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我生成贪吃蛇代码
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-10-16 12:00:18 | 只看该作者
当我们要编写一个贪吃蛇游戏的时候,首先要了解这个游戏的基本规则。在贪吃蛇游戏中,玩家控制一条蛇在游戏界面上移动,蛇在吃到食物后会变长,如果蛇碰到自己的身体或者墙壁,游戏就会结束。

下面是一个简单的贪吃蛇游戏代码示例,你可以参考这个代码来编写自己的贪吃蛇游戏:

  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.     # 判断是否吃到食物
  63.     if head.distance(food) < 20:
  64.         x = random.randint(-290, 290)
  65.         y = random.randint(-290, 290)
  66.         food.goto(x, y)

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

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

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

  82.     move()
  83.    
  84.     # 判断是否碰到墙壁
  85.     if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:
  86.         time.sleep(1)
  87.         head.goto(0, 0)
  88.         head.direction = "stop"
  89.         
  90.         for segment in snake:
  91.             segment.goto(1000, 1000)

  92.         snake.clear()

  93.     # 判断是否碰到自己的身体
  94.     for segment in snake:
  95.         if segment.distance(head) < 20:
  96.             time.sleep(1)
  97.             head.goto(0, 0)
  98.             head.direction = "stop"
  99.             
  100.             for segment in snake:
  101.                 segment.goto(1000, 1000)

  102.             snake.clear()

  103.     time.sleep(delay)

  104. win.mainloop()
复制代码


这段代码使用了Python的turtle库来实现贪吃蛇游戏的基本功能,包括蛇的移动、食物的生成、判断是否吃到食物、判断游戏结束等。你可以运行这段代码并体验贪吃蛇游戏的乐趣!希望可以帮助到你。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表