只需要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的re模块应用实例
Sep 26 Python
Python获取Linux系统下的本机IP地址代码分享
Nov 07 Python
收集的几个Python小技巧分享
Nov 22 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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按指定键值对二维数组进行排序的方法
2015/12/22 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
python实现类的静态变量用法实例
2015/05/08 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python使用OpenCV进行标定
2018/05/08 Python
pycham查看程序执行的时间方法
2018/11/29 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
逃课上网检讨书
2014/02/20 职场文书
春节联欢会主持词
2014/03/24 职场文书
公证委托书标准格式
2014/09/11 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
汇报材料怎么写
2014/12/30 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS