发表时间:2022-03-25来源:网络
今天做一个Python版的贪吃蛇游戏,主要用到了pygame包。写这个程序的目的是针对Python语言练练手。使用的开发工具是Pycharm,程序代码如下,另外代码会同步到github一份。原创作品,未经允许不要转载。
动画效果:















# 4. 实现主体函数循环
def main(): # 4.01 使用全局变量 global snakeBody global infoList # 4.02 初始化窗口 init_playSurface() # 4.03 进入程序主循环 while True : init_span() # 4.03.01 初始化背景 init_snake() # 4.03.03 初始化蛇 init_apple() # 4.03.02 初始化苹果 display() # 4.03.04 更新界面显示(画的新图像需要重新显示) clear_score() # 4.03.05 清空成绩 # 4.03.06 循环以完成蛇不断地爬行 while True: # 每次循环,意味着蛇爬行一步,并且在每次循环中要读取键盘所按方向键,未按方向键则按原来方向继续爬行,如果改变了方向,则调整爬行方向 display() # 4.03.06.01 更新显示画面 exec_delay() # 4.03.06.02 爬行动作频次时钟控制,实现每一步之间的延时 getKeyboardDirection() # 4.03.06.03 读取蛇运动方向(当键盘按方向键后,direction 值会及时更新) nextSnakeHead = get_next_head_with_direction() # 4.03.06.04 得到下步蛇头要走的位置 if is_next_step_touch_the_wall(nextSnakeHead): break; # 4.03.06.05 遇到围墙,即将越界则结束 本局结束 if is_snake_next_head_cover_apple(nextSnakeHead): # 4.03.06.06 # 如果我们的贪吃蛇的位置和苹果重合了,说明吃到了苹果 add_snake_head(nextSnakeHead) # 4.03.06.06.01 新的蛇头数据放入蛇列表数据开头 draw_snake_head() # 4.03.06.06.02 画新的蛇头(身体不需要重新画) get_new_apple_position() # 4.03.06.06.03 # 获取新苹果位置 draw_apple() # 4.03.06.06.04 # 画新的苹果 increment_score() # 增加成绩 else : # 4.03.06.07 如果下一步没有遇到苹果 也没有遇到墙,那么可能是遇到了 空白区域 或者 遇到了自己的身体 clear_snake_tail() # 4.03.06.07.01 前行一步 意味着 自己原来的尾巴位置 应该 变成空白区域,所以删掉旧的尾巴 drop_snake_tail() # 4.03.06.07.02 if is_snake_next_head_cover_body(nextSnakeHead): break # 4.03.06.07.03 如果碰到了自己的身体则 本局结束 else :# 4.03.06.07.04 什么都没有碰到也没吃到苹果,则蛇头顺利前行一步,下一个位置变成蛇头 add_snake_head(nextSnakeHead) # 4.03.06.07.04.01 新的蛇头数据放入蛇列表数据开头 draw_snake_head() # 4.03.06.07.04.02 画新的蛇头(身体不需要重新画) # 4.03.07 打印游戏信息,包括分数 display_info(get_game_over_info(),"notosanscjkjp", 20, yellow, black)# 程序入口if __name__ == '__main__': main()
# 4.01 使用全局变量 global snakeBody global infoList # 4.02 初始化窗口 init_playSurface() # 4.03 进入程序主循环 while True : init_span() # 4.03.01 初始化背景 init_snake() # 4.03.03 初始化蛇 init_apple() # 4.03.02 初始化苹果 display() # 4.03.04 更新界面显示(画的新图像需要重新显示) clear_score() # 4.03.05 清空成绩 # 4.03.06 循环以完成蛇不断地爬行 while True: # 每次循环,意味着蛇爬行一步,并且在每次循环中要读取键盘所按方向键,未按方向键则按原来方向继续爬行,如果改变了方向,则调整爬行方向 display() # 4.03.06.01 更新显示画面 exec_delay() # 4.03.06.02 爬行动作频次时钟控制,实现每一步之间的延时 getKeyboardDirection() # 4.03.06.03 读取蛇运动方向(当键盘按方向键后,direction 值会及时更新) nextSnakeHead = get_next_head_with_direction() # 4.03.06.04 得到下步蛇头要走的位置 if is_next_step_touch_the_wall(nextSnakeHead): break; # 4.03.06.05 遇到围墙,即将越界则结束 本局结束 if is_snake_next_head_cover_apple(nextSnakeHead): # 4.03.06.06 # 如果我们的贪吃蛇的位置和苹果重合了,说明吃到了苹果 add_snake_head(nextSnakeHead) # 4.03.06.06.01 新的蛇头数据放入蛇列表数据开头 draw_snake_head() # 4.03.06.06.02 画新的蛇头(身体不需要重新画) get_new_apple_position() # 4.03.06.06.03 # 获取新苹果位置 draw_apple() # 4.03.06.06.04 # 画新的苹果 increment_score() # 增加成绩 else : # 4.03.06.07 如果下一步没有遇到苹果 也没有遇到墙,那么可能是遇到了 空白区域 或者 遇到了自己的身体 clear_snake_tail() # 4.03.06.07.01 前行一步 意味着 自己原来的尾巴位置 应该 变成空白区域,所以删掉旧的尾巴 drop_snake_tail() # 4.03.06.07.02 if is_snake_next_head_cover_body(nextSnakeHead): break # 4.03.06.07.03 如果碰到了自己的身体则 本局结束 else :# 4.03.06.07.04 什么都没有碰到也没吃到苹果,则蛇头顺利前行一步,下一个位置变成蛇头 add_snake_head(nextSnakeHead) # 4.03.06.07.04.01 新的蛇头数据放入蛇列表数据开头 draw_snake_head() # 4.03.06.07.04.02 画新的蛇头(身体不需要重新画) # 4.03.07 打印游戏信息,包括分数 display_info(get_game_over_info(),"notosanscjkjp", 20, yellow, black)# 程序入口if __name__ == '__main__': main()
计支宝app下载v3.1.29 安卓版
142.27MB |商务办公
小小优酷最新版下载v5.4.6 安卓官方版
68.11MB |影音播放
艺图语app下载v3.3.4 安卓免费版
34.33MB |系统工具
爱鸽者手机版下载v3.2.9 安卓版
243.57MB |商务办公
一品威客网接单app(一品众包)下载v2.7.1 安卓最新版
55.01MB |商务办公
诸葛找房网官方版下载v4.8.1.1 安卓最新版
66.6MB |生活服务
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游末日餐厅安卓版下载v1.35安卓版
其它手游葫芦侠十楼免费破解版下载v4.4.0.6安卓版
其它手游葫芦侠8楼最新破解版下载v4.4.0.6安卓版
其它手游