Python制作宝石消消乐小游戏

2023-11-11

开发工具

Python版本:3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

图片来由于网络

相关文件

关注公众号:Python学习指南,回复“消消乐”即可获取

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

游戏规则:

玩家通过鼠标交换相邻的拼图,若交换后水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分,同时生成新的拼图以补充消失的部分,否则,交换失败,玩家不得分。

玩家需要在规定时间内获取尽可能高的得分。

逐步实现:

Step1**:初始化**

游戏初始化,并加载必要的游戏素材:

图片

Step2**:定义游戏精灵类**

游戏中需要用到鼠标与拼图块之间的碰撞检测,从而操作拼图块移动,因此我们定义一个拼图块游戏精灵类以方便实现这些功能:

图片

Step3**:实现游戏主循环**

逻辑其实很简单,就是不断检测是否有鼠标点击事件发生,如果有,则判断鼠标点击时的位置是否在某拼图块的位置区域内,若在,则选中该拼图块,否则不选中。

当有第二块拼图块被选中时,则判断两个拼图块是否满足拼图交换的条件,若满足,则交换拼图块,并获得奖励,否则不交换并取消选这两个拼图块的选中状态。

源代码如下图所示:

图片

Step4**:游戏结束界面**

游戏倒计时结束后,进入游戏结束界面,界面显示用户当前得分。同时,若用户键入R键则重新开始游戏,键入ESC键则退出游戏。

源代码实现如下:

图片

All Done**!完整源代码详见相关文件。**

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python制作宝石消消乐小游戏 的相关文章

  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是

随机推荐

  • 带你进入 OpenAI 的世界

    2021年11月的 Microsoft Ignite 微软带来了全新的 Azure OpenAI Service 通过新的 Azure 认知服务能够访问 OpenAI 强大的 GPT 3 模型 虽然微软还没有正式开放 Open AI Ser
  • charles手机模拟器的连接

    charles手机模拟器的连接 1 第一步 打开虚拟机设备 2 第二步 去掉window peoxy的勾选项 对app端测试 3 点击proxy选中proxy Setting 4 勾选这个 默认端口是8888
  • Linux下五种I/O模型详解(阻塞IO、非阻塞IO、IO复用、信号驱动、异步IO)

    https blog csdn net gui951753 article details 82348485 感谢博主 我已收藏
  • 异步编程(async 和 await)

    1 概念 异步编程是一项关键技术 可以直接处理多个核心上的I O阻塞和并发操作 2 使用场景 对于存在IO密集型 例如从网路请求数据 访问数据库和写入到文件系统 和CPU密集型 例如大量的计算 的任务可以选择异步编程 3 异步编程针对于IO
  • Linux下安装操作Git远程仓库与本地仓库同步的教程

    主机操作系统 Centos 6 7 安装配置 GIT邮箱 leiyuxing205 gmail com 一GIT简介 Git是一个开源的分布式版本控制系统 用以有效 高速的处理从很小到非常大的项目版本管理 Git 是 Linus Torva
  • 通过linux定时任务删除es日志索引

    能过linux定时任务删除es日志索引 项目用上了elk 产生的日志索引要定时 其一个方法 通过linux定时任务 调用es接口删除索引 bin bash 删除ELK30天前的日志 计算索引名称包含的日期 比如这里是 Y m d 2023
  • 深入浅出统计学(十四)卡方分布

    基本概念 问题 总结 卡方检验步骤 自由度计算
  • 百度前端实习生面试经历

    说实话 这应该是自己第一次认真准备 又很在意的面试 非常感谢学长的内推 昨天从下午三点一直到晚上七点经历了三场面试 每场大约半小时左右 前两场技术面 最后一面是高级项目经理的 软实力 面试 因为我没做过服务器端 所以基本没有涉及服务器端的知
  • c++实现简单分数统计

    include
  • CHAR与VARCHAR字段类型的适用场景

    在知乎看到的 特意做个笔记 CHAR CHAR适合存储很短的字符串 或者所有值都接近同一个长度 例如 CHAR非常适合存储密码的MD5值 因为这是一个定长的值 对于经常变更的数据 CHAR也比VARCHAR更好 因为定长的CHAR类型不容易
  • 如何制作一个百货小程序

    在这个数字化时代 小程序已成为各行各业的必备工具 其中 百货小程序因其便捷性和多功能性 越来越受到人们的青睐 那么 如何制作一个百货小程序呢 下面 我们就详细介绍一下无需编写代码的步骤 一 进入后台管理 首先 您需要注册并登录 乔拓云 操作
  • STM32+ESP8266连接电脑Qt网络上位机——准备工作

    准备工作 先使用手机和电脑实现局域网 保证电脑的上位机和手机APP 实现服务器和客户机无障碍通信 文章目录 一 准备工作 二 手机作为服务器 三 电脑作为服务器 一 准备工作 工具 手机端 NeTorch 网络调试工具 电脑端 野火网络调试
  • Maven设置网络中央仓库的镜像

    使用国内阿里云的镜像进行设置 在Maven的安装路径下的conf下的settings xml文件中进行配置 将下面的代码复制到settings py文件中
  • 三层交换机及VLAN(入门)

    文章目录 三层交换机及VLAN VLAN入门 1 数据链路层的基础知识 1 1什么是数据链路层 1 2数据链路层的基本功能 2 以太网基本定义 2 1 MAC地址简介 2 2 以太网数据帧的格式 3 交换机的工作原理 3 1交换机的作用 3
  • go语言中的if语句

    go语言中的if语句 go语言中的if语句和其他语言中的类似 都是根据给定的条件表达式运算结果来 判断执行流程 go语言if语句语法 if 布尔表达式 在布尔表达式为 true 时执行 注意 在go语言中 布尔表达式不用使用括号 go语言i
  • WPF+EF Core入门:制作可视化窗体软件

    原因 最近要面试一家公司 公司有对WPF架构的要求 然后就开始自学了 功能描述 加载所有学生信息 名字筛选学生信息 重置筛选 新增学生信息 修改学生信息 删除学生信息 窗体样式 操作步骤 一 引用文件包 进去管理NuGet程序包 引入EF
  • 使用centos7搭建syslog和loganalyzer日志服务器

    主要步骤是网上根据博客来安装及排错调试 这两张帖子都写的很详细 http www ifzhai com article php id 9 https blog csdn net qq 33157780 article details 506
  • java String类(超详细,含常用方法、面试题,内存图,案例)

    String类 一 String类的特点 二 String 类的常见构造方法 三 String常见的面试题 1 字符串常量池 2 String s abc 与String s new String abc 区别 3 字符拼接 4 常量优化机
  • pgsql数据库存储过程中,批量操作数据

    82 数据库存储过程中 批量操作数据 DECLARE record row record 定义一个名为 record row 的记录类型变量 BEGIN FOR record row IN SELECT name age id card F
  • Python制作宝石消消乐小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 关注公众号 Python学习指南 回复 消消乐 即可获取 环境搭建 安装Python并添加到环境变量 pip安装需要的相关模块即可