嘿嘿,长假最后一天!摸鱼一把,我用Python做一个美女消消乐!

news/2024/11/28 17:48:00/

大家好,我是菜鸟哥!

3天长假,一晃就过去了,马上又要回厂搬砖喽!今天菜鸟哥给大家带来一个游戏福利,趁着还没有上班,摸鱼一把。手把手的制作一款美女消消乐的小游戏。话不多说,我们先一起来看看游戏运行的效果吧!

(耐心等6秒之后才是亮点)

程序讲解

游戏固然好玩,但是看懂程序,并能根据自己的喜好来魔改程序更加重要。接下来,菜鸟哥就从整体到局部出发,分模块化的来拆解程序,挑出程序中重要的点来分析,让大家搞清楚游戏背后的程序架构,也方便小伙伴根据自己的喜好来修改源码。

主程序

首先,我们来看一下程序的主程序内容,该部分程序位于main.py的文件中。

865f7cd3824a9a6d4ed079f12f2524fd.png

程序中,第1行到第16行是一些通用的内容加载,包括了背景音乐,以及消消乐中各位美女的图片内容。

程序中的第18行是非常关键的引入了Game类,也就是游戏的主要内容。

在第19行到49行中,在while循环中执行Game游戏,如果游戏结束,则会弹出我们的游戏成绩展示界面。并会提示用户按不同的按键进行接下来的操作。成绩展示界面如下图所示。

4f6e1bd1d2dbebaa07c56c659960139a.png

如果用户选择重新开始游戏,则游戏会重新开始。用户按下‘Q',则退出游戏。

主游戏程序

主程序介绍完毕后,接下来就是进入到我们刚才提到的Game类中,理解好Game类,对于我们理解整个游戏起到了至关重要的作用。Game类位于util.py文件中。

bbdc31bf7bcb6c116e204daaca7c2608.png

上图的程序中,是Game类的核心程序。

程序的第2行到18行描述的行为就是我们在界面上点击图片所发生的事情。girl_selected_xy和girl_selected_xy2分别保存的是点击图片的网格位置。如下图所示:

d095ab1bf30765fae7f46f0ba4cb0d27.png

我们的游戏界面中,网格就是棋盘当中的一个个的小格子,每个格子都有自己特定的坐标。上图中的两个格子的坐标就分别为[3,4](第四列,第五行),[4,3](第五列,第四行)。而我们的图片好比是一张张棋子,放置在网格当中,只不过我们的棋子大小刚好遮住网格。注意,我们的每个“棋子”也是一个类,我们放在后面进行介绍。

第14行代码中,通过swap_girl函数将我们选中的两张图片进行了位置上的调换。

19-26行代码,描述的是在图片自动下落的过程中,自动生成的三连图片,此时,调用is_matched函数来判断是否有三连图片。然后调用函数remove_match_girl来去除掉三连的图片。is_matched函数如下图所示。

55d65b95fb6640973c4cb2792a51c0a1.png

整个过程用图片来进行解释如下图所示:

515a8d567175a6174d9c0645ec003556.png

在Game类的核心程序中,第27-43行程序描述的则是我们调换两张图片的过程,当调换图片后,发现界面中没有三连时,则将调换的图片重新换回去,表明这样的调换不合理。

如果调换后有三连图片,则调用remove_match_girl函数,来执行去除图片并新添加图片的操作。

在remove_match_girl函数中,调用了generate_new_girl,来实现去除三连图片,并新生成三张随机的图片。generate_new_girl函数如下图所示。

52251ecee7057ec5e32020cd1e4a3a42.png

上图的程序中,我们不需要将去除三连的图片弄的非常明白,我们只需要大致明白generate_new_girl函数的作用即可。

值得注意的是,在第16行和第35行的程序中,通过调用girlSprite类来生成了我们的“girl”对象。

还记得上面提到的“棋子”吗?没错,我们的girlSprite类就是棋子。

f46234215c2c39add2193c49c7b1fd46.png

在girlSprite类中,我们要重点关注的是它的move类函数。通过递归循环,不断的调用move函数,便可以实现图片下落的动画效果。

总结:

学习Python的过程肯定是很枯燥的,但是如何把枯燥的编程学习变得有趣,让你不从入门到放弃,这个就是一个很有技巧的事情。整个的代码大概200多行,主要的逻辑其实在game的设计这一块,对消消乐游戏有兴趣的同学可以找我们拿源码,然后自己改一下,换成斗破苍穹版本的消消乐或者是海贼王,灌篮高手,机器猫版本的

如果想通过趣味案例入门Python,提高功力进步神速,也欢迎加入我们的星球(星球的朱老师是在大厂主攻Python后端开发)。目前手把手教大家玩了几个趣味的案例,源码和教程都非常详细,后面还有很多项目准备上马。

  • 搭建博客

  • 部署股票机器人

  • 部署价格监控爬虫

7331da188c06de704195433617e69643.png

需要本篇源码的同学,可以找一下小助手获取。后天输入:小助手,找他领取,暗号:消消乐

最后欢迎大家在留言区吱一声,说说你三天长假都干了啥,点赞多的留言回头有奖励。

推荐阅读:
入门: 最全的零基础学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案例!


http://www.ppmy.cn/news/285281.html

相关文章

selenium爬取猫咪图片并转换为统一尺寸(内附爬取并转换尺寸的的图片下载链接)

selenium爬取猫咪图片并转换为统一尺寸(内附爬取并转换尺寸的的图片下载链接) 朋友机器学习需要几百张-一千张左右的照片,就简单写了个selenium的自动化操作爬虫,对猫咪的图片进行爬虫并进行尺寸的转换 下面有已经爬取好的5种猫咪…

大脑神经网络图高清,图神经网络 图像

什么是全连接神经网络?怎么理解“全连接”? 1、全连接神经网络解析:对n-1层和n层而言,n-1层的任意一个节点,都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候,激活函数的输入是n-1层所有节点的…

谷歌出品!机器学习常用术语总结

来源:比特小组,推荐人:杨佳达 转自:Datawhale 机器学习术语表 Google 官方出品的机器学习中英文术语对照表,列出了一般的机器学习术语和 TensorFlow 专用术语的定义。版权归谷歌,本公众号精心编译制作&…

猫鼠游戏之勒索病毒来袭

勒索病毒来袭 昨天夜间,全球近 100 个国家的计算机同时遭到了来自一款名为wana Decrypt0r 2.0 的勒索软件的攻击。几乎同时,国内各大高校中教育网中计算机也遭到了攻击,有不少学生朋友已经中招。中国各地许多高校学生突然发现自己电脑中了一…

C语言GDF中是什么作用,深度解密格力GDF-40X21C怎么样呢?质量好不好?真相揭秘必看...

这款格力(GREE)电饭煲电饭锅4L 智能预约触摸操控多功能电饭煲 家用大容量饭煲GDF-40X21C的确是不错的哟,做工还真挺细腻的,样式很不错,性价比蛮高的,外观多时尚的,整体看着相当大气,说实在话这款格力GDF-40…

家电三巨头的集体突围

中国家电行业,面临着新难关。 据《2022年中国家电行业一季度报告》显示,今年一季度,国内家电行业销售额1540亿元,同比下降12.3%。这主要源于上游供应端的原材料价格上涨,下游的零售端由于房地产市场萎靡、疫情等影响&…

Java第3章的抽象类小测验

1.( public abstract void add(); )正确声明了abstract方法。 2.在源程序中定义类B和类C,编译时得到的结果是( 能够成功编译类B和类C )。 abstract class B{ abstract void show(); } abstract class C ext…

(毕业设计资料)基于51单片机人体追踪智能电风扇控制系统

内容:人体追踪可控的电风扇,该电风扇应具有人体追踪,智能开关,智能调速的功能。 (1)了解单片机、传感器和电机的知识; (2)通过PWM调速的原理来实现风扇随着不同温度自动…