只需要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中pip安装非PyPI官网第三方库的方法
Jun 02 Python
用Python编写简单的微博爬虫
Mar 04 Python
使用python实现BLAST
Feb 12 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
python 实现矩阵填充0的例子
Nov 29 Python
flask框架自定义url转换器操作详解
Jan 25 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
完美解决keras 读取多个hdf5文件进行训练的问题
Jul 01 Python
Python打印不合法的文件名
Jul 31 Python
Python暴力破解Mysql数据的示例
Nov 09 Python
python调用百度API实现人脸识别
Nov 17 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
php.ini 中文版
2006/10/28 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
python基础教程之while循环
2019/08/14 Python
Python socket 套接字实现通信详解
2019/08/27 Python
python开发入门——set的使用
2020/09/03 Python
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
编辑找工作求职信范文
2013/12/16 职场文书
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
教师评优事迹材料
2014/01/10 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
部队个人年终总结
2015/03/02 职场文书
2015年党日活动总结范文
2015/03/25 职场文书