嘿嘿,长假最后一天!摸鱼一把,我用Python做一个美女消消乐!
大家好,我是菜鸟哥!
3天长假,一晃就过去了,马上又要回厂搬砖喽!今天菜鸟哥给大家带来一个游戏福利,趁着还没有上班,摸鱼一把。手把手的制作一款美女消消乐的小游戏。话不多说,我们先一起来看看游戏运行的效果吧!
(耐心等6秒之后才是亮点)
程序讲解
游戏固然好玩,但是看懂程序,并能根据自己的喜好来魔改程序更加重要。接下来,菜鸟哥就从整体到局部出发,分模块化的来拆解程序,挑出程序中重要的点来分析,让大家搞清楚游戏背后的程序架构,也方便小伙伴根据自己的喜好来修改源码。
主程序
首先,我们来看一下程序的主程序内容,该部分程序位于main.py的文件中。
程序中,第1行到第16行是一些通用的内容加载,包括了背景音乐,以及消消乐中各位美女的图片内容。
程序中的第18行是非常关键的引入了Game类,也就是游戏的主要内容。
在第19行到49行中,在while循环中执行Game游戏,如果游戏结束,则会弹出我们的游戏成绩展示界面。并会提示用户按不同的按键进行接下来的操作。成绩展示界面如下图所示。
如果用户选择重新开始游戏,则游戏会重新开始。用户按下‘Q',则退出游戏。
主游戏程序
主程序介绍完毕后,接下来就是进入到我们刚才提到的Game类中,理解好Game类,对于我们理解整个游戏起到了至关重要的作用。Game类位于util.py文件中。
上图的程序中,是Game类的核心程序。
程序的第2行到18行描述的行为就是我们在界面上点击图片所发生的事情。girl_selected_xy和girl_selected_xy2分别保存的是点击图片的网格位置。如下图所示:
我们的游戏界面中,网格就是棋盘当中的一个个的小格子,每个格子都有自己特定的坐标。上图中的两个格子的坐标就分别为[3,4](第四列,第五行),[4,3](第五列,第四行)。而我们的图片好比是一张张棋子,放置在网格当中,只不过我们的棋子大小刚好遮住网格。注意,我们的每个“棋子”也是一个类,我们放在后面进行介绍。
第14行代码中,通过swap_girl函数将我们选中的两张图片进行了位置上的调换。
19-26行代码,描述的是在图片自动下落的过程中,自动生成的三连图片,此时,调用is_matched函数来判断是否有三连图片。然后调用函数remove_match_girl来去除掉三连的图片。is_matched函数如下图所示。
整个过程用图片来进行解释如下图所示:
在Game类的核心程序中,第27-43行程序描述的则是我们调换两张图片的过程,当调换图片后,发现界面中没有三连时,则将调换的图片重新换回去,表明这样的调换不合理。
如果调换后有三连图片,则调用remove_match_girl函数,来执行去除图片并新添加图片的操作。
在remove_match_girl函数中,调用了generate_new_girl,来实现去除三连图片,并新生成三张随机的图片。generate_new_girl函数如下图所示。
上图的程序中,我们不需要将去除三连的图片弄的非常明白,我们只需要大致明白generate_new_girl函数的作用即可。
值得注意的是,在第16行和第35行的程序中,通过调用girlSprite类来生成了我们的“girl”对象。
还记得上面提到的“棋子”吗?没错,我们的girlSprite类就是棋子。
在girlSprite类中,我们要重点关注的是它的move类函数。通过递归循环,不断的调用move函数,便可以实现图片下落的动画效果。
总结:
学习Python的过程肯定是很枯燥的,但是如何把枯燥的编程学习变得有趣,让你不从入门到放弃,这个就是一个很有技巧的事情。整个的代码大概200多行,主要的逻辑其实在game的设计这一块,对消消乐游戏有兴趣的同学可以找我们拿源码,然后自己改一下,换成斗破苍穹版本的消消乐或者是海贼王,灌篮高手,机器猫版本的。
如果想通过趣味案例入门Python,提高功力进步神速,也欢迎加入我们的星球(星球的朱老师是在大厂主攻Python后端开发)。目前手把手教大家玩了几个趣味的案例,源码和教程都非常详细,后面还有很多项目准备上马。
搭建博客
部署股票机器人
部署价格监控爬虫
需要本篇源码的同学,可以找一下小助手获取。后天输入:小助手,找他领取,暗号:消消乐
最后欢迎大家在留言区吱一声,说说你三天长假都干了啥,点赞多的留言回头有奖励。
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
1).卧槽!Pdf转Word用Python轻松搞定!
2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃
3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密
4).80行代码!用Python做一个哆来A梦分身
5).你必须掌握的20个python代码,短小精悍,用处无穷
6).30个Python奇淫技巧集
7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货
8).再见Python!我要学Go了!2500字深度分析!
9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片
点阅读原文,看200个Python案例!
嘿嘿,长假最后一天!摸鱼一把,我用Python做一个美女消消乐!相关推荐
- 【摸鱼神器】基于python的BOSS识别系统
[摸鱼神器]基于python的BOSS识别系统 前言 一.整体设计 二.调用摄像头 三.人脸识别 1. 构建白名单库 2. 人脸匹配 四.切换屏幕 五.完整代码 写在最后 前言 Tip:本文仅供技术学 ...
- 为了上班摸鱼,我用Python开发“BOSS来了”
作为打工人来说,特别是996,.007的工作,除了干饭之外,最紧张刺激的莫过于上班的时候偶尔偷偷闲,去池塘里面摸摸鱼. 996摸鱼 一般人摸得哪些鱼呢?聊天.微博.微信朋友圈.小游戏.小说.股票基金等 ...
- 为了上班摸鱼,我用Python开发“BOSS来了”!
文 | 闲欢 来源:Python 技术「ID: pythonall」 作为打工人来说,特别是996,.007的工作,除了干饭之外,最紧张刺激的莫过于上班的时候偶尔偷偷闲,去池塘里面摸摸鱼. 996摸鱼 ...
- 学Python更多是为了摸鱼,大多数人都这么做
文章目录 内容介绍 学Python为了更好的摸鱼 内容介绍 如果你还不知道学Python是为了拿一个技能去找工作的话,那你就大错特错了.Python只是一个工具而已,就像所有编程语言一样,你能做我也能 ...
- 【摸鱼系列】如何用Python做一个有趣的Loading彩蛋游戏~
嗨害大家好鸭!我是小熊猫❤ 不知道大家有没有在摸鱼的时候玩过它~ 这是谷歌流量器中很有名的彩蛋: 当你网络出现问题时,就会出现一个"小恐龙游戏". 当然你如果想要直接进行游戏,可以 ...
- 长假余额为零!我用Python做了个中秋国庆双节拼图游戏
点击上方"菜鸟学Python",选择"星标"公众号 重磅干货,第一时间送达 今年的国庆长假非常长,不知不觉已经余额为零!朋友圈很多晒出游的照片,聚会的照片,吃吃 ...
- 给前端快速上手摸鱼一把主流状态管理库,这家伙真香
前言 大家好,我是虚竹. 众所周知,React是一个专注于UI层的库,不同于Vue.Angular等框架,React 的各种状态管理方案一直是在百花齐放.群魔乱舞.除了热门库Redux.Mobx.Re ...
- 今日任务,摸鱼到下班
逢年过节 穷得响叮当的我 掏空了口袋也没找到什么好礼相送 想来在长假前的最后一天 大多数人的肉体虽还在办公室 但心早已飘到九霄云外 所以我们就依照惯例 为大家献上能让大伙充实度过今天的 办公摸鱼神器3 ...
- 摸鱼,是员工给公司的福报
前些天,脉脉上有一条员工的爆料消息. 在一个公司群里,员工因为中午午休,被在群里集体发通知批评. 从群聊天可以看出,领导非常生气,@了全员,并且表示所有睡着的人都已被记录,谁再中午午休立刻走人 ...
- 继国美处罚“摸鱼”员工后,网易出品之摸鱼计算器...
前两天,国美的一则员工处罚公告,震惊了一众打工人. 从公告中我们可以看到,国美从员工工作时间的流量来判断上班时间是否员工在摸鱼,想必也是业界首创.但是很多小伙伴都有个疑问,这难道不属于侵犯隐私吗?国美 ...
最新文章
- Unity制作2D动作平台游戏视频教程
- [DNS] 网页无法打开,设置合适的DNS解决问题
- java 三角依次递增在递减_java中用for循环怎样打印三角行啊,主要是不理解什么情况外层循环递增什么时候递减,如等腰三角形...
- gitlab+jenkins 搭建
- glassfish_具有GlassFish和一致性的高性能JPA –第3部分
- Redis数据结构——字典-hashtable
- python 调用vba 参数 保存表格_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏
- php exif信息,php如何给jpg图片写入exif信息?
- mysql 创建触发器出错_mysql-在phpmyadmin中创建触发器时出错
- 服务器无限火力时间,LOL十周年宣布无限火力开启时间 无限火力开启及持续时间详情...
- 技术能力与真不是几年经验成正比的
- windows环境下VS2013编译openSSL
- em px 简单换算
- 各浏览器flash插件下载地址
- 设置TextView滚动
- python如何用macd选股_使用MACD指标进行选股的四种方法
- 两个高斯分布乘积的理论推导
- 6.2_[Java 数组]-利用二重循环打印各种图形
- ROS可以不扫描地图,自己制作地图
- 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。