只需要100行Python代码就可以实现的贪吃蛇小游戏


Posted in Python onMay 27, 2021

图示

只需要100行Python代码就可以实现的贪吃蛇小游戏

基本准备

首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需要知道整个游戏分为四部分:

1.游戏显示:游戏界面、结束界面

2.贪吃蛇:头部、身体、食物判断、死亡判断

3.树莓:随机生成

4.按键控制:上、下、左、右

游戏显示

首先,我们来初始化pygame,定义颜色、游戏界面的窗口大小、标题和图标等。

只需要100行Python代码就可以实现的贪吃蛇小游戏

游戏结束界面,我们会显示“Game Over!”和该局游戏所得分数,相关代码如下:

只需要100行Python代码就可以实现的贪吃蛇小游戏

贪吃蛇和树莓

我们需要将整个界面看成许多20*20的小方块,每个方块代表一个单位,蛇的长度用单位来表示,同时我们采用列表的形式存储蛇的身体。同时,我们都知道,树莓的位置是随机的。所以,我们需要让树莓出现的位置是游戏界面中的随机位置,同时,每吃到一颗树莓,就需要重新生成一颗新的树莓,并且得分加1。相关初始化设置如下:

只需要100行Python代码就可以实现的贪吃蛇小游戏

如何控制贪吃蛇的运动轨迹呢,那么就需要按键控制了。我们通过键盘的↑↓←→和WSAD来控制,如果想直接退出游戏,则可以通过Esc键。这里需要强调的是,贪吃蛇里面是不能反方向运动,因此,我们需要进一步的增加限制条件:

只需要100行Python代码就可以实现的贪吃蛇小游戏

方向设置好了,那么贪吃蛇蛇身变换怎么做啊?很简单,我们只需要根据方向变换一下坐标即可。

只需要100行Python代码就可以实现的贪吃蛇小游戏

贪吃蛇游戏里面最重要的就是食物判断和死亡判断。首先是食物判断,我们通过键盘按键来决定贪吃蛇的走向,以便它能吃到树莓。如何判断贪吃蛇有没有吃到树莓呢?很简单,如果贪吃蛇蛇头的位置和树莓的位置重合了,也就是相同,那么贪吃蛇就吃到树莓了,否则没有。同时,一旦发生了树莓被吃的情况,立刻重新随机生成一个新的树莓。相关代码如下:

只需要100行Python代码就可以实现的贪吃蛇小游戏

死亡判断则分为两类情况,一是触碰到了游戏界面的边界,二是贪吃蛇触碰到了自己的身体。一旦发生死亡,则触发gameover。

只需要100行Python代码就可以实现的贪吃蛇小游戏

贪吃蛇运动和吃掉树莓的过程中,游戏界面需要不断更新。同时,我们设置了游戏速度。

只需要100行Python代码就可以实现的贪吃蛇小游戏

至此,我们就能完成一个贪吃蛇小游戏了。赶紧去实验一下吧!

到此这篇关于只需要100行Python代码就可以实现的贪吃蛇小游戏的文章就介绍到这了,更多相关Python贪吃蛇小游戏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现的二叉树算法和kmp算法实例
Apr 25 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
mac下如何将python2.7改为python3
Jul 13 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
python保留小数位的三种实现方法
Jan 07 Python
详解python UDP 编程
Aug 24 Python
如何获取numpy array前N个最大值
May 14 Python
PyTorch dropout设置训练和测试模式的实现
May 27 #Python
pytorch Dropout过拟合的操作
浅谈pytorch中的dropout的概率p
May 27 #Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
PyTorch 实现L2正则化以及Dropout的操作
You might like
PHP利用COM对象访问SQLServer、Access
2006/10/09 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
使用python进行拆分大文件的方法
2018/12/10 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
最新英语专业学生求职信范文
2013/09/21 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
投标授权委托书范文
2014/08/02 职场文书
党课培训心得体会
2014/09/02 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
鸦片战争观后感
2015/06/09 职场文书
领导欢送会主持词
2015/07/06 职场文书
校友会致辞
2015/07/30 职场文书
事业单位岗位说明书
2015/10/08 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js