Python Pygame 制作经典贪吃蛇小游戏2026 最新完整版这是 Python 入门者最推荐的第一个小游戏项目下面给你一个完整、可直接运行、结构清晰的贪吃蛇代码基于 GeeksforGeeks 2025 年更新版本 优化注释。1. 首先安装 Pygamepipinstallpygame2. 完整代码复制粘贴即可运行importpygameimporttimeimportrandom# 游戏配置 snake_speed15# 速度越大越快window_x720# 窗口宽度window_y480# 窗口高度# 颜色定义RGBblackpygame.Color(0,0,0)whitepygame.Color(255,255,255)redpygame.Color(255,0,0)greenpygame.Color(0,255,0)bluepygame.Color(0,0,255)# 初始化 Pygamepygame.init()# 创建游戏窗口pygame.display.set_caption(贪吃蛇 - Python Pygame)game_windowpygame.display.set_mode((window_x,window_y))# FPS 控制器fpspygame.time.Clock()# 游戏初始状态 snake_position[100,50]# 蛇头初始位置# 蛇初始身体4 节snake_body[[100,50],[90,50],[80,50],[70,50]]# 食物初始位置10的倍数网格对齐fruit_position[random.randrange(1,(window_x//10))*10,random.randrange(1,(window_y//10))*10]fruit_spawnTrue# 蛇默认方向directionRIGHTchange_todirection score0# 辅助函数 defshow_score(choice,color,font,size):score_fontpygame.font.SysFont(font,size)score_surfacescore_font.render(得分: str(score),True,color)score_rectscore_surface.get_rect()game_window.blit(score_surface,score_rect)defgame_over():my_fontpygame.font.SysFont(simhei,50)# 支持中文game_over_surfacemy_font.render(游戏结束最终得分: str(score),True,red)game_over_rectgame_over_surface.get_rect()game_over_rect.midtop(window_x/2,window_y/4)game_window.blit(game_over_surface,game_over_rect)pygame.display.flip()time.sleep(2)pygame.quit()quit()# 主游戏循环 whileTrue:# 处理键盘事件foreventinpygame.event.get():ifevent.typepygame.KEYDOWN:ifevent.keypygame.K_UP:change_toUPifevent.keypygame.K_DOWN:change_toDOWNifevent.keypygame.K_LEFT:change_toLEFTifevent.keypygame.K_RIGHT:change_toRIGHT# 防止同时按相反方向蛇不能直接掉头ifchange_toUPanddirection!DOWN:directionUPifchange_toDOWNanddirection!UP:directionDOWNifchange_toLEFTanddirection!RIGHT:directionLEFTifchange_toRIGHTanddirection!LEFT:directionRIGHT# 根据方向移动蛇头ifdirectionUP:snake_position[1]-10ifdirectionDOWN:snake_position[1]10ifdirectionLEFT:snake_position[0]-10ifdirectionRIGHT:snake_position[0]10# 蛇身体增长机制snake_body.insert(0,list(snake_position))ifsnake_position[0]fruit_position[0]andsnake_position[1]fruit_position[1]:score10fruit_spawnFalseelse:snake_body.pop()# 没吃到食物就去掉尾巴# 生成新食物ifnotfruit_spawn:fruit_position[random.randrange(1,(window_x//10))*10,random.randrange(1,(window_y//10))*10]fruit_spawnTrue# 填充背景game_window.fill(black)# 画蛇forposinsnake_body:pygame.draw.rect(game_window,green,pygame.Rect(pos[0],pos[1],10,10))# 画食物pygame.draw.rect(game_window,white,pygame.Rect(fruit_position[0],fruit_position[1],10,10))# 游戏结束条件# 撞墙ifsnake_position[0]0orsnake_position[0]window_x-10:game_over()ifsnake_position[1]0orsnake_position[1]window_y-10:game_over()# 撞自己forblockinsnake_body[1:]:ifsnake_position[0]block[0]andsnake_position[1]block[1]:game_over()# 显示分数show_score(1,white,simhei,20)# 更新屏幕pygame.display.update()# 控制帧率fps.tick(snake_speed)3. 如何运行把上面代码保存为snake_game.py在终端运行python snake_game.py用↑ ↓ ← →方向键控制蛇4. 游戏特性一览经典贪吃蛇逻辑吃食物长身体 得分防止直接掉头撞墙 / 撞自己 游戏结束中文游戏结束界面 实时分数显示网格化移动更丝滑代码结构清晰适合修改想加音效、关卡、暂停都很容易想继续升级这个游戏吗回复以下任意关键词我立刻给你下一版加音效吃到食物、游戏结束音效加暂停功能按 P 键暂停增加难度随分数加快速度添加开始菜单 最高分记录美化版彩色食物、不同皮肤、粒子特效这个贪吃蛇项目做完你的 Pygame 基础就非常扎实了快去运行试试吧 玩得开心✨有什么问题或想修改的地方随时告诉我