只需要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使用稀疏矩阵节省内存实例
Jun 27 Python
Python写入CSV文件的方法
Jul 08 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
python生成以及打开json、csv和txt文件的实例
Nov 16 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
python线程里哪种模块比较适合
Aug 02 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
Python django框架 web端视频加密的实例详解
Nov 20 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--用万网的接口实现域名查询功能
2012/12/13 PHP
深入php处理整数函数的详解
2013/06/09 PHP
php图片缩放实现方法
2014/02/20 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP递归创建多级目录
2015/11/05 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python高阶爬虫实战分析
2018/07/29 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python实现抖音点赞功能
2019/04/07 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
专营店会计助理岗位职责
2013/11/29 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
MyBatis 动态SQL全面详解
2021/10/05 MySQL