只需要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实现颜色rgb和hex相互转换的函数
Mar 19 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
IntelliJ IDEA安装运行python插件方法
Dec 10 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
python多线程下信号处理程序示例
May 31 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
python 实现德洛内三角剖分的操作
Apr 22 Python
PyTorch dropout设置训练和测试模式的实现
May 27 #Python
pytorch Dropout过拟合的操作
浅谈pytorch中的dropout的概率p
May 27 #Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
PyTorch 实现L2正则化以及Dropout的操作
You might like
Terran热键控制
2020/03/14 星际争霸
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
php长字符串定义方法
2012/07/12 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
php加密解密字符串示例
2016/10/13 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
Python 多线程抓取图片效率对比
2016/02/27 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
应届生会计求职信
2013/11/11 职场文书
高校辅导员推荐信范文
2013/12/25 职场文书
运动会入场词100字
2014/02/06 职场文书
采购意向书范本
2014/03/31 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
大学毕业生推荐信
2014/07/09 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python