当前位置:懂科普 >

IT科技

> 用python做贪吃蛇

用python做贪吃蛇

首先__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:内部填色的大小,如果为零,图案就是空心圆;如果与半径大小相同,图案就是实心圆。

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

用python做贪吃蛇

用python做贪吃蛇 第2张

其次是食物模块

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

用python做贪吃蛇 第3张

然后是init_board函数

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

用python做贪吃蛇 第4张

接着是game_over模块

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

用python做贪吃蛇 第5张

接下来是游戏初始化模块

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

用python做贪吃蛇 第6张

最后是游戏主函数

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

用python做贪吃蛇 第7张

标签: 贪吃蛇 Python
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/47wxj4.html