最新文章专题视频专题关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
苹果x来电铃声小怎么处理 qq群班级作业怎么私发 苹果7p怎么下载不了软件 洗碗工怎样保护手 微信撤回的消息怎么查看 苹果怎么改变闹钟铃声 黑鲨手机喇叭怎么清理 熨斗下面脏了怎么清洁 手机wps怎么删除页面 苹果换华为通讯录怎么导入 手机掉水用吹风机热风吹的怎么办 微信封号15天怎么办 羊肉怎么去膻味最有效 苹果x滚动截屏怎么设置 吊瓶蒸汽熨斗不出蒸汽 小米手环2怎么连接手机 如何自己装win10 腾讯会议怎么屏蔽声音 小米手机突然反复重启怎么办 买的卤菜太辣了怎么办 金立手机开不了锁怎么办 大鱿鱼须的切法 pdf文档怎么合并成一个 为什么vivo闪充越来越慢 苹果手机怎么更换id账号 win10怎么看版本号 换手机号qq怎样找回 oppo手机开不了机咋办 华为手机锁屏时间怎么调 如何将pdf转换成excel 苹果6sp信号弱解决办法 一元打火机漏气怎么处理 没有熨斗如何去皱 超轻粘土干了裂开怎么办 沙发坐久了陷了怎么办 华为8x充不进去电怎么回事 为什么花洒半夜自动流水 怎样关闭360安全桌面 我被移出群聊怎么恢复 忘记自己微博账号怎么办
当前位置: 首页 - 科技 - 知识百科 - 正文

python贪吃蛇详解

来源:懂视网 责编:小采 时间:2020-06-17 15:25:09
文档

python贪吃蛇详解

首先来看贪吃蛇模块,其次是食物模块,然后是init_board函数,接着是game_over模块,接下来是游戏初始化模块,最后是游戏主函数
推荐度:
导读首先来看贪吃蛇模块,其次是食物模块,然后是init_board函数,接着是game_over模块,接下来是游戏初始化模块,最后是游戏主函数

首先来看贪吃蛇模块:

首先__init__初始化贪吃蛇的位置初始方向竖直向上。toward函数用于改变贪吃蛇的方向,(x,y)分别表示蛇头在水平和竖直方向的朝向。朝左x=-1,朝右x=1,朝上y=-1,朝下y=1。move函数,使用标志enlarge来判断蛇是否吃到了食物,并进行相应的操作。eat_food函数判断蛇是否吃到食物,吃到的话,分数加 100,并返回True。toward函数,用于改变蛇头的方向,但如果改变方向与当前方向相反,就什么操作都不执行。draw函数用于画出贪吃蛇的模样,蛇头是略大一点的红心,蛇身是小一点的黄心。

我们怎么画出这条蛇呢?这就要借助函数pygame.draw.circle,这个函数的主要参数有screen:就是你要在其中画出贪吃蛇的游戏界面,color:图案的颜色(RGB), position:图案在屏幕上的位置, radius:的半径,width:内部填色的大小,如果为零,图案就是空心圆;如果与半径大小相同,图案就是实心圆。

下面是贪吃蛇的代码部分,大家可以结合注释阅读

其次是食物模块

np.random.randint用于产生边界之内的坐标,如果与贪吃蛇的坐标重合,那么就继续生成新的随机坐标。

然后是init_board函数

board_width、board_height分别为游戏界面的宽度和高度,根据计算得出边框占据的位置,然后打印出正方形来。pygame.draw.rect和pygame.draw.circle用法类似,区别就是rect四个参数分别为screen:屏幕,color:颜色,pos:横坐标 x,纵坐标 y,矩形的长,矩形的宽。这里我设置矩形长宽都为 20 。width和circle中width用法相同,都是填充大小的意思。

接着是game_over模块

如何判断谁咬到自身呢?可以利用python内置数据结构set:set这种数据结构中不能有重复元素。如果将list变成set之后,长度变短了,就说明list中有重复元素,即贪吃蛇咬到自己了。

接下来是游戏初始化模块

使用pygame模块需要使用pygame.init进行初始化。pygame.display.set_mode用来设置游戏界面的大小。pygame.display.set_caption用来显示游戏标题。

最后是游戏主函数

首先实例化贪吃蛇和食物。其次设置字体为SimHei,如果使用默认字体对中文的支持很不好。其次显示游戏界面,判断游戏是否失败。如果失败的话,就打印GAME OVER。否则就一直执行主函数。其中 pygame.event.get从队列中获取事件,也就是说必须先获取事件,才能得到用户的键盘输入和其他操作,screen.fill用于填充屏幕,pygame.key.get_pressed用于获取用户的键盘输入,pygame.display.update用来刷新到之前的图案,time.sleep用于控制刷新的频率。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:0731-84117792 E-MAIL:11247931@qq.com

文档

python贪吃蛇详解

首先来看贪吃蛇模块,其次是食物模块,然后是init_board函数,接着是game_over模块,接下来是游戏初始化模块,最后是游戏主函数
推荐度:
标签: 怎么做 简单 怎么
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题python 贪吃蛇源码专题python贪吃蛇代码及注释专题贪吃蛇python程序专题python 应用专题numpy 下载专题下载numpy专题python 电脑专题游戏 python专题python 模拟专题python模拟点击专题疯狂python专题pip numpy专题go和python专题python和go专题python whl专题python game专题go与python专题python iter专题iter python专题python io专题
Top