Python怎样制作贪吃蛇游戏
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家介绍Python怎样制作贪吃蛇游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言:文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用
千家信息网最后更新 2026年11月04日Python怎样制作贪吃蛇游戏
这篇文章给大家介绍Python怎样制作贪吃蛇游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
前言:
文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的。
据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个贪吃蛇小游戏是一个像素版的,虽然简陋,但还是可以玩起来的
我们主要要做的内容:
创建游戏窗口
绘制贪吃蛇与食物
蛇吃食物
贪吃蛇的棋盘模型:

现在就开始我们的代码,首先,还是导入模块:
import pygameimport randomimport copy
1. 创建游戏窗口
1.1 游戏初始化
pygame.init()clock = pygame.time.Clock() # 设置游戏时钟pygame.display.set_caption("贪吃蛇-解答、源码、相关资料可私信我") # 初始化标题screen = pygame.display.set_mode((500, 500)) # 初始化窗口 窗体的大小为 500 5001.2 初始化蛇的位置 蛇的长度 10 10 也就是蛇的 X Y 坐标
snake_list = [[10, 10]]
首先设置蛇的一个运行方向 接下来判断键盘事件在决定蛇的运行方向
蛇可以运行起来了,那么接下来就是,吃食物增加自己的长度和不吃食物在不同的位置显示
初始小蛇方向:
move_up = Falsemove_down = Falsemove_left = Falsemove_right = True
1.3 初始化食物的位置
x = random.randint(10, 490)y = random.randint(10, 490)food_point = [x, y]
1.4 开启游戏循环
running = Truewhile running: # 游戏时钟 刷新频率 clock.tick(20)
1.5 填充背景为白色
screen.fill([255, 255, 255])
1.6 绘制背景
for x in range(0, 501, 10): pygame.draw.line(screen, (195, 197, 199), (x, 0), (x, 500), 1) pygame.draw.line(screen, (195, 197, 199), (0, x), (500, x), 1) food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)

1.7绘制蛇
snake_rect = []for pos in snake_list: # 1.7.1 绘制蛇的身子 snake_rect.append(pygame.draw.circle(screen, [255, 0, 0], pos, 5, 0))
2. 绘制贪吃蛇与食物
2.1 获取蛇的长度,移动蛇的身子
pos = len(snake_list) - 1while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1
2.2 更改蛇头位置
if move_up: snake_list[pos][1] -= 10 if snake_list[pos][1] < 0: snake_list[pos][1] = 500if move_down: snake_list[pos][1] += 10 if snake_list[pos][1] > 500: snake_list[pos][1] = 0if move_left: snake_list[pos][0] -= 10 if snake_list[pos][0] < 0: snake_list[pos][0] = 500if move_right: snake_list[pos][0] += 10 if snake_list[pos][0] > 500: snake_list[pos][0] = 0
2.3 键盘控制移动职位
for event in pygame.event.get(): # print(event) # 判断按下的按键 if event.type == pygame.KEYDOWN: # 上键 if event.key == pygame.K_UP: move_up = True move_down = False move_left = False move_right = False # 下键 if event.key == pygame.K_DOWN: move_up = False move_down = True move_left = False move_right = False # 左键 if event.key == pygame.K_LEFT: move_up = False move_down = False move_left = True move_right = False # 右键 if event.key == pygame.K_RIGHT: move_up = False move_down = False move_left = False move_right = True
2.4 获取蛇的长度,移动蛇的身子
pos = len(snake_list) - 1while pos > 0: snake_list[pos] = copy.deepcopy(snake_list[pos - 1]) pos -= 1
3. 蛇吃食物
3.1 碰撞检测 如果蛇吃掉食物
if food_rect.collidepoint(pos): # 贪吃蛇吃掉食物 snake_list.append(food_point) # 重置食物位置 food_point = [random.randint(10, 490), random.randint(10, 490)] food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0) break
3.2 如果蛇吃掉了自己
head_rect = snake_rect[0]count = len(snake_rect)while count > 1: if head_rect.colliderect(snake_rect[count - 1]): running = False count -= 1pygame.display.update()
关于Python怎样制作贪吃蛇游戏就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
食物
位置
长度
制作
内容
方向
身子
移动
运行
接下来
代码
小游戏
文章
时钟
更多
背景
还是
键盘
帮助
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网科技网
互联网科技集团
齐家互联网科技
互联网科技汛
科技类的互联网平台
成都玖崟互联网科技有限公司乐商圈怎么样
以后互联网后是啥科技
重庆互联网医院沙龙医盟信息科技
互联网与医疗科技
宜昌元轩互联网科技有限公司
长沙互联网科技
互联网科技圈年度人物
广州有谷有贝互联网科技有限公司
九思连强互联网电子科技有限公司
福仕德教育科技互联网
互联网金融金融科技
安徽九吞吴互联网科技有限公司
恒生互联网科技趋势
山东亿川互联网科技有限责任公司
西安纸贵互联网科技有限公司
北京互联网科技
互联网科技论文
大白互联网科技
互联网科技有限公司 翻译
阿里巴巴算科技企业还是互联网
承德科技产业互联网发展
昊天互联网科技有限公司
搜狐科技互联网
广州梦谷互联网科技有限公司领导