大家好,我是菜鸟哥!

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做一个美女消消乐!相关推荐

  1. 【摸鱼神器】基于python的BOSS识别系统

    [摸鱼神器]基于python的BOSS识别系统 前言 一.整体设计 二.调用摄像头 三.人脸识别 1. 构建白名单库 2. 人脸匹配 四.切换屏幕 五.完整代码 写在最后 前言 Tip:本文仅供技术学 ...

  2. 为了上班摸鱼,我用Python开发“BOSS来了”

    作为打工人来说,特别是996,.007的工作,除了干饭之外,最紧张刺激的莫过于上班的时候偶尔偷偷闲,去池塘里面摸摸鱼. 996摸鱼 一般人摸得哪些鱼呢?聊天.微博.微信朋友圈.小游戏.小说.股票基金等 ...

  3. 为了上班摸鱼,我用Python开发“BOSS来了”!

    文 | 闲欢 来源:Python 技术「ID: pythonall」 作为打工人来说,特别是996,.007的工作,除了干饭之外,最紧张刺激的莫过于上班的时候偶尔偷偷闲,去池塘里面摸摸鱼. 996摸鱼 ...

  4. 学Python更多是为了摸鱼,大多数人都这么做

    文章目录 内容介绍 学Python为了更好的摸鱼 内容介绍 如果你还不知道学Python是为了拿一个技能去找工作的话,那你就大错特错了.Python只是一个工具而已,就像所有编程语言一样,你能做我也能 ...

  5. 【摸鱼系列】如何用Python做一个有趣的Loading彩蛋游戏~

    嗨害大家好鸭!我是小熊猫❤ 不知道大家有没有在摸鱼的时候玩过它~ 这是谷歌流量器中很有名的彩蛋: 当你网络出现问题时,就会出现一个"小恐龙游戏". 当然你如果想要直接进行游戏,可以 ...

  6. 长假余额为零!我用Python做了个中秋国庆双节拼图游戏

    点击上方"菜鸟学Python",选择"星标"公众号 重磅干货,第一时间送达 今年的国庆长假非常长,不知不觉已经余额为零!朋友圈很多晒出游的照片,聚会的照片,吃吃 ...

  7. 给前端快速上手摸鱼一把主流状态管理库,这家伙真香

    前言 大家好,我是虚竹. 众所周知,React是一个专注于UI层的库,不同于Vue.Angular等框架,React 的各种状态管理方案一直是在百花齐放.群魔乱舞.除了热门库Redux.Mobx.Re ...

  8. 今日任务,摸鱼到下班

    逢年过节 穷得响叮当的我 掏空了口袋也没找到什么好礼相送 想来在长假前的最后一天 大多数人的肉体虽还在办公室 但心早已飘到九霄云外 所以我们就依照惯例 为大家献上能让大伙充实度过今天的 办公摸鱼神器3 ...

  9. 摸鱼,是员工给公司的福报

        前些天,脉脉上有一条员工的爆料消息. 在一个公司群里,员工因为中午午休,被在群里集体发通知批评. 从群聊天可以看出,领导非常生气,@了全员,并且表示所有睡着的人都已被记录,谁再中午午休立刻走人 ...

  10. 继国美处罚“摸鱼”员工后,网易出品之摸鱼计算器...

    前两天,国美的一则员工处罚公告,震惊了一众打工人. 从公告中我们可以看到,国美从员工工作时间的流量来判断上班时间是否员工在摸鱼,想必也是业界首创.但是很多小伙伴都有个疑问,这难道不属于侵犯隐私吗?国美 ...

最新文章

  1. Unity制作2D动作平台游戏视频教程
  2. [DNS] 网页无法打开,设置合适的DNS解决问题
  3. java 三角依次递增在递减_java中用for循环怎样打印三角行啊,主要是不理解什么情况外层循环递增什么时候递减,如等腰三角形...
  4. gitlab+jenkins 搭建
  5. glassfish_具有GlassFish和一致性的高性能JPA –第3部分
  6. Redis数据结构——字典-hashtable
  7. python 调用vba 参数 保存表格_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏
  8. php exif信息,php如何给jpg图片写入exif信息?
  9. mysql 创建触发器出错_mysql-在phpmyadmin中创建触发器时出错
  10. 服务器无限火力时间,LOL十周年宣布无限火力开启时间 无限火力开启及持续时间详情...
  11. 技术能力与真不是几年经验成正比的
  12. windows环境下VS2013编译openSSL
  13. em px 简单换算
  14. 各浏览器flash插件下载地址
  15. 设置TextView滚动
  16. python如何用macd选股_使用MACD指标进行选股的四种方法
  17. 两个高斯分布乘积的理论推导
  18. 6.2_[Java 数组]-利用二重循环打印各种图形
  19. ROS可以不扫描地图,自己制作地图
  20. 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。

热门文章

  1. 毕业设计 基于51单片机老人防跌倒GSM短信报警系统
  2. 飞思卡尔MC9S12G64串口发送接收驱动
  3. Quartz 定时任务管理
  4. html改变鼠标指针形状代码,改变鼠标指针形状_js改变鼠标形状与样式的方法
  5. 支付宝红包机器人不加好友解决思路
  6. 技术人员的一点产品思维思考
  7. 谁能和乔布斯比勤奋?乔布斯的睡眠时间
  8. 求偶数c语言程序,用C语言编写一道程序计算100以内偶数的和
  9. MacOS系统安装Qt教程
  10. 自上而下与自下而上的项目计划: 哪个更适合 PMO?