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 中的列表理解来获取列表的唯一元素 i if i in created comprehension else 0 for i in 1 2 1 2 3 1 2 0 0 3
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • 带你进入 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安装需要的相关模块即可