只需要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实现简单socket通信的方法
Apr 19 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
Python smtplib实现发送邮件功能
May 22 Python
对python程序内存泄漏调试的记录
Jun 11 Python
Python中collections模块的基本使用教程
Dec 07 Python
python3人脸识别的两种方法
Apr 25 Python
python中while和for的区别总结
Jun 28 Python
python3 深浅copy对比详解
Aug 12 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
Tensorflow累加的实现案例
Feb 05 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
Python实战之实现简易的学生选课系统
May 25 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会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP连接access数据库
2015/03/27 PHP
js对象关系图 方便dom操作
2012/03/18 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
批处理与python代码混合编程的方法
2016/05/19 Python
python中函数默认值使用注意点详解
2016/06/01 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
python的继承知识点总结
2018/12/10 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
python设置环境变量的作用和实例
2019/07/09 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python为什么要安装到c盘
2020/07/20 Python
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
实习生单位鉴定意见
2013/12/04 职场文书
给全校老师的建议书
2014/03/13 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
酒店前台辞职书
2015/02/26 职场文书
乱世佳人观后感
2015/06/08 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
python中urllib包的网络请求教程
2022/04/19 Python