只需要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局部赋值的规则
Mar 07 Python
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
python利用lxml读写xml格式的文件
Aug 10 Python
Python实现的矩阵类实例
Aug 22 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
django-filter和普通查询的例子
Aug 12 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
win10安装python3.6的常见问题
Jul 01 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 Python
对Keras自带Loss Function的深入研究
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 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
python3利用tcp实现文件夹远程传输
2018/07/28 Python
python 同时运行多个程序的实例
2019/01/07 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
python连接mongodb集群方法详解
2020/02/13 Python
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
办理居住证介绍信
2014/01/15 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
幼儿园教师求职信
2015/03/20 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers