大家好,我是菜鸟哥!
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行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
点阅读原文,看200个Python案例!