一、 核心逻辑拆解 贪吃蛇的本质就是一个“移动的坐标列表”。 蛇身: 由多个 (x, y) 坐标组成的列表。 移动: 每帧将蛇头向移动方向移动一格,并删除蛇尾,除非吃到了食物。 碰撞检测: 如果蛇头撞墙或撞到自己,则游戏结束。 二、 代码实战 你需要安装 pygame (pip install pygame),然后运行以下代码: Python import pygame import random # 初始化 pygame.init() screen = pygame.display.set_mode((600, 400)) snake = [[100, 100], [90, 100], [80, 100]] food = [200, 200] direction = 'RIGHT' while True: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: direction = 'UP' # ... 其他方向同理 # 移动蛇头 head = list(snake[0]) if direction == 'RIGHT': head[0] += 10 snake.insert(0, head) # 吃食物判断 if snake[0] == food: food = [random.randrange(1, 60)*10, random.randrange(1, 40)*10] else: snake.pop() # 绘图 screen.fill((0, 0, 0)) for pos in snake: pygame.draw.rect(screen, (0, 255, 0), [pos[0], pos[1], 10, 10]) pygame.display.update() pygame.time.Clock().tick(15) 三、 进阶思路 现在的贪吃蛇还很简陋,如果你想继续优化,可以尝试: 加入计分系统: 每次吃到食物加 10 分,并在右上角显示。 增加难度: 随着分数增加,蛇的移动速度越来越快。 游戏结束画面: 添加一个“Game Over”并按 R 重启的逻辑。 四、 结语 写这个游戏的过程,实际上是在练习如何处理循环、数组和碰撞逻辑。当你看着那个小方块在屏幕上听你指挥时,那种成就感是编程特有的浪漫。