科学教育

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

帮我写一个贪吃蛇代码

[复制链接]

3

主题

4

帖子

23

积分

新手上路

Rank: 1

积分
23
跳转到指定楼层
楼主
发表于 2025-10-14 09:36:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我写一个贪吃蛇代码
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-10-14 09:36:17 | 只看该作者
当然可以!贪吃蛇是一个非常有趣的游戏。在这个游戏中,你需要控制一条蛇来吃食物,每吃到一个食物,蛇的身体就会变长一节。如果蛇撞到墙壁或者自己的身体,游戏就会结束。

以下是一个简单的贪吃蛇代码示例(使用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 = turtle.Turtle()
  13. snake.speed(0)
  14. snake.shape("square")
  15. snake.color("white")
  16. snake.penup()
  17. snake.goto(0, 0)
  18. snake.direction = "stop"

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

  26. segments = []

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

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

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

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

  40. # 键盘绑定
  41. win.listen()
  42. win.onkey(go_up, "w")
  43. win.onkey(go_down, "s")
  44. win.onkey(go_left, "a")
  45. win.onkey(go_right, "d")

  46. # 移动函数
  47. def move():
  48.     if snake.direction == "up":
  49.         y = snake.ycor()
  50.         snake.sety(y + 20)

  51.     if snake.direction == "down":
  52.         y = snake.ycor()
  53.         snake.sety(y - 20)

  54.     if snake.direction == "left":
  55.         x = snake.xcor()
  56.         snake.setx(x - 20)

  57.     if snake.direction == "right":
  58.         x = snake.xcor()
  59.         snake.setx(x + 20)

  60. # 主循环
  61. while True:
  62.     win.update()

  63.     # 检测碰撞
  64.     if snake.xcor() > 290 or snake.xcor() < -290 or snake.ycor() > 290 or snake.ycor() < -290:
  65.         print("游戏结束!")
  66.         time.sleep(1)
  67.         snake.goto(0, 0)
  68.         snake.direction = "stop"

  69.         for segment in segments:
  70.             segment.goto(1000, 1000)

  71.         segments.clear()

  72.     if snake.distance(food) < 20:
  73.         x = random.randint(-280, 280)
  74.         y = random.randint(-280, 280)
  75.         food.goto(x, y)

  76.         new_segment = turtle.Turtle()
  77.         new_segment.speed(0)
  78.         new_segment.shape("square")
  79.         new_segment.color("grey")
  80.         new_segment.penup()
  81.         segments.append(new_segment)

  82.     for i in range(len(segments) - 1, 0, -1):
  83.         x = segments[i - 1].xcor()
  84.         y = segments[i - 1].ycor()
  85.         segments[i].goto(x, y)

  86.     if len(segments) > 0:
  87.         x = snake.xcor()
  88.         y = snake.ycor()
  89.         segments[0].goto(x, y)

  90.     move()

  91.     for segment in segments:
  92.         if segment.distance(snake) < 20:
  93.             print("游戏结束!")
  94.             time.sleep(1)
  95.             snake.goto(0, 0)
  96.             snake.direction = "stop"

  97.             for segment in segments:
  98.                 segment.goto(1000, 1000)

  99.             segments.clear()

  100.     time.sleep(delay)
复制代码


你可以将以上代码复制粘贴到Python编译器中运行,这样就可以玩贪吃蛇游戏了。希望你能喜欢这个游戏!如果有其他问题,欢迎随时向我提问。
回复 支持 反对

使用道具 举报

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

本版积分规则

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