python 判断一片区域的颜色_10分钟用Python编写一个贪吃蛇游戏(附源码和学习资料)...

贪吃蛇,我相信没人没玩过,记得第一次接触贪吃蛇游戏,还是用着能砸核桃的若诺基亚手机上,今天,我们用Python编写一个贪吃蛇小游戏,来看看下边的运行效果:

e2ee6fb4066462e2259f60ef530f09db.gif

首先,我们先来个思路

所有游戏最重要的内容就是程序的内部循环,这是保证游戏正常运行的前提。

以下是游戏的主要内容。

85c0e58ff011c70d5b6c379687f46fcb.png

我们来谈谈如何使用Python编写贪心蛇

I.调用库和初始设置

一呼叫第三方库

Python与其他语言非常不同,因为它有许多第三方库需要调用在用Python编写游戏时,pyGame是一个非常简单的第三方库,可以通过pip直接安装安装方法在前一篇文章中已经提到过,不会详细描述想了解更多pyGame特性的朋友也可以参考官方文档。

这是我们写蛇的时候需要调用的库。

32ebd2619d38e8db08119ff0d77d9663.png

2设置 初始化

我们使用这些代码行初始化pyGame,定义窗口(边界)的大小、窗口的标题和图标。

1b25843218202df553328108da6350b7.png

三。定义颜色变量

因为我们需要使用一些颜色,所以python并没有附带它所以我们需要定义一些颜色。

7a1a11460cd592ef400a19d09e553f6e.png

二、GameOver

如前所述,所有游戏中最重要的部分是周期gameover函数是跳出这个循环的条件这是当蛇吃掉自己的身体或触及边界时显示的界面(稍后将显示判断死亡的代码)

7b047f68b5c3a1650da4c0d22db7a5d6.png

三。蛇和树莓

接下来,我将介绍游戏的主题,即蛇和蛇莓的展示和动作。

一定义初始位置

我们把整个界面看作20*20个小正方形每个正方形代表一个单位,蛇的长度可以用几个单位表示这里蛇身以列表的形式存储,方便以后删除。

c81c67eaddf57ac4279f79e769a0e20c.png

2键盘输入判断蛇的运动

我们需要通过键盘上下左右键来控制蛇的运动,或者通过键盘输入WASD,同时需要增加按下ESC的功能来退出游戏。

8d825ce59595e5ced722312c2df913b1.png

贪心蛇的运动有一个特点:它不能朝相反的方向移动所以我们需要增加限制。

3b3011de5cb41a5a1f8ca4cce3a5c725.png

下一步是根据键盘的输入转动蛇头,将蛇头的当前位置添加到蛇身列表中。

77eb4362eb4943648962e95577794198.png

3 .判断是否吃到树莓

如果蛇的头部与一盒覆盆子重合,就决定吃掉覆盆子并清除覆盆子的数量如果不吃树莓,蛇会跟着蛇头走,最后一段蛇会被踢出名单。

2ca0d6406494676207265c0aa5a5f9c5.png

4 .重新生成树莓

当覆盆子的数量为0时,覆盆子被再生并且分数增加。

fbc4360927125e8a463df27d2e887d86.png

5.刷新显示层

每当蛇和覆盆子移动时,它会刷新显示层以显示有点像动画的画面。

0b51aeee10f9c672a76f9f5ec425659f.png

6判断它是否死了

当蛇头越过边界或与自己的身体重合时,蛇就会死亡并召唤gameover。

a088052929ffec2fffd608db7a9db5f5.png

7。控制游戏速度

为了增加难度,我们设置蛇体的时间越长,其速度越快,直到达到最大极限为止。

09a8f8c7d67b1a5e22f7c1fb88114d0c.png

在这里,蛇的游戏结束了怎么样,简单吗?

写在文末的话:最近工作比较忙,还有一个月就到双11了,没日没夜得加班赶项目写bug,有时周末都跑去公司加班,实在没有多余的精力和兴趣来写小项目,所以周更都比较难,但是生活嘛,总得坚持下去,苦一阵子总比苦一辈子要好,所以作为一个小码农的我还在坚持写python,期待成为架构师大牛的那一天emmmmm...........

还是老规矩,别忘记点亮再看和点赞哦,不定期分享实用教程和小案例。

3f125974d818149f7946a106e7077cac.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值