首页/新闻资讯/正文详情

python+pygame实现小游戏连连看之三

发布时间:2026/9/23 10:32:26 来源:云帆数科 栏目:资讯中心
python+pygame实现小游戏连连看之三
之二请看pythonpygame实现小游戏连连看之二五、之前我们已经实现了小图标的切割初始化游戏界面等基本内容下面是连连看的核心逻辑内容。首先连连看里面判断两个小图标能不能消除一般有以下三种类型当然前提是两个小图标是一样的直连 --- 单拐连 !--双拐连!---!而单拐连本质就是两个直连双拐连本质是两个单拐连。1、增加枚举常量def main(): ... EMPTYCELL -1 NONE_LINK 0 #不连 #新增 DIRECT_LINK 1 #直连 --- #新增 ONE_CORNER_LINK 5 #单拐连 !_ TWO_CORNER_LINK 8 #双拐连 !_! #新增 ...2、新增方法 getTwoIconsLinkType参数是两个小图标返回就是上述定义的枚举常量。def main(): ... 获得两个点连通类型 def getTwoIconsLinkType(Cell0, Cell8): #第一步两个cell里面的图片是否相同不同就不谈 if cur_game[Cell0[0]][Cell0[1]] ! cur_game[Cell8[0]][Cell8[1]]: return {type:NONE_LINK} if isDirectLink(Cell0,Cell8): return {type:DIRECT_LINK} if isOneCornerLink(Cell0,Cell8): return {type:ONE_CORNER_LINK} if isTwoCornerLink(Cell0,Cell8): return {type:TWO_CORNER_LINK} return {type:NONE_LINK} ...代码中首先看图片是否相同图片相同再看是哪种连通方式。3、getTwoIconsLinkType中涉及到isDirectLinkisOneCornerLinkisTwoCornerLink三个函数下面逐一添加isDirectLinkdef main(): ... DIRECT_LINK 1 #直连 --- def isDirectLink(C1, C2): start -1 end -1 # Y方向 if C1[1] C2[1]: # 大小判断 if C2[0] C1[0]: start C2[0] end C1[0] else: start C1[0] end C2[0] for x in range(start 1, end): if cur_game[x][C1[1]] ! EMPTYCELL: return False return True # X方向 elif C1[0] C2[0]: if C1[1] C2[1]: start C2[1] end C1[1] else: start C1[1] end C2[1] for y in range(start 1, end): if cur_game[C1[0]][y] ! EMPTYCELL: return False return True return False ...由于传入的是两个小图标的下标所以用下标可以判断是同行还是同列。以同行为例第一个下标相同首先比较两者的第二个下标将小的赋值给start大的赋值给end然后从start到end这之间的所有小图标都为空EMPTYCELL即没有阻挡的可以认为是直连类型。也就是怎么把要解决的问题转化为数学模型然后通过计算机的程序语言来实现就是我们码农要掌握的技能这也是常常说的逻辑思维能力的一种表现。当然你不是码农就不要理会。下面继续讲解单拐连的代码isOneCornerLinkdef main(): ... ONE_CORNER_LINK 5 #单拐连 !_ def isOneCornerLink(C1, C2): corner (C1[0], C2[1]) if isDirectLink(C1, corner) and isDirectLink(corner, C2) and isEmptyCell(corner[0],corner[1]): return True corner (C2[0], C1[1]) if isDirectLink(C1, corner) and isDirectLink(corner, C2) and isEmptyCell(corner[0],corner[1]): return True return False逻辑设计如下紧接着再完成双拐连的函数isTwoCornerLinkdef main(): ... TWO_CORNER_LINK 8 #双拐连 !_! def isTwoCornerLink(C1, C2): # Y方向 for y in range(-1, game_rows 1): corner1 (C1[0], y) corner2 (C2[0], y) if y C1[1] or y C2[1]: continue if y -1 or y game_rows: if isDirectLink(C1, corner1) and isDirectLink(corner2, C2): return True else: if isDirectLink(C1, corner1) and isDirectLink(corner1, corner2) and isDirectLink(corner2, C2) and isEmptyCell(corner1[0],corner2[1]) and isEmptyCell(corner2[0],corner2[1]): return True # X方向 for x in range(-1, game_cols 1): corner1 (x, C1[1]) corner2 (x, C2[1]) if x C1[0] or x C2[0]: continue if x -1 or x game_cols: if isDirectLink(C1, corner1) and isDirectLink(corner2, C2): return True else: if isDirectLink(C1, corner1) and isDirectLink(corner1, corner2) and isDirectLink(corner2, C2) and isEmptyCell(corner1[0],corner2[1]) and isEmptyCell(corner2[0],corner2[1]): return True return False ...至此我们的核心逻辑已经实现。六、修改mouseClick事件def main(): ... 鼠标点击响应 def mouseClick(posX,posY): nonlocal isFirst nonlocal compareCell nonlocal isStart if isStart: curCell getPoint(posX,posY) # print (curCell) if isUseful(curCell[0],curCell[1]) and not isEmptyCell(curCell[0],curCell[1]): if isFirst : drawRedRect(curCell[0],curCell[1]) isFirst False compareCell curCell else: if compareCell[0] curCell[0] and compareCell[1] curCell[1]: isFirst True delRedRectangle(curCell[0],curCell[1]) else: linkType getTwoIconsLinkType(compareCell, curCell) #新增 if linkType[type] ! NONE_LINK: #新增 pass #消掉匹配的小图标 #删除红色的首次选中框 #设置isFirst为True #if 游戏结束: 通关后重置isStartisFirst参数 else: #新增 无法消掉的时候去掉首个选中的红框将第二个赋值为首个选中给它画红框 delRedRectangle(compareCell[0],compareCell[1]) #新增 compareCell curCell #新增 drawRedRect(curCell[0],curCell[1]) #新增待更新...pythonpygame实现连连看小游戏之四

相关推荐

2026年TTS工具工作流集成:7款方案实测,从参数验证到批量生产的成本控制
2026年TTS工具工作流集成:7款方案实测,从参数验证到批量生产的成本控制

在技术内容生产或应用集成中,TTS选型的核心矛盾往往不是“哪款音质最好”,而是“哪款能以最低的调试成本跑通从验证到批量的完整链路”。免费工具通常无法批量调用,API方案又涉及代码接入和按量计费,而声音克隆、多角色这类能力更… · 2026/9/23 10:32:26

YOLO实战:输电线路数据集VOC转YOLO格式与训练全流程
YOLO实战:输电线路数据集VOC转YOLO格式与训练全流程

简介:面向电力巡检、计算机视觉目标检测的研究者与算法工程师,这份YOLO算法输电线路数据集提供了3334张带标签图像,可直接用于训练和验证YOLO系列目标检测模型。压缩包内共2000个文件,全部为XML标注文件,包体大小约366… · 2026/9/23 10:32:20

Python构建APT溯源图:从日志到图神经网络的实战路径
Python构建APT溯源图:从日志到图神经网络的实战路径

简介:本资源是一份高分毕业设计项目——基于Python溯源图的APT攻击检测方法的完整实现方案,面向计算机相关专业本科生、研究生及安全方向初学者,解决高级持续性威胁(APT)在真实场景中难以动态建模与精准识别的问题。压… · 2026/9/23 10:32:20

Manim Paper Explainer 工作流:把研究论文变成 5 分钟动画解说视频
Manim Paper Explainer 工作流:把研究论文变成 5 分钟动画解说视频

Manim Paper Explainer 工作流:把研究论文变成 5 分钟动画解说视频 【免费下载链接】video-use Edit videos with coding agents 项目地址: https://gitcode.com/GitHub_Trending/vid/video-use 本指南基于 video-use 仓库中 manim-video 技能 的 Paper Expl… · 2026/9/23 15:34:50

大模型驱动跨境数据合规:DeepSeek技术选型与落地避坑指南
大模型驱动跨境数据合规:DeepSeek技术选型与落地避坑指南

简介:面向数据合规、法律科技与自然语言处理从业者,这份396页的PDF方案围绕DeepSeek模型,系统阐述跨境数据合规智能评估的完整技术链路。内容覆盖多法系法律文本语料库构建、特殊清洗与标准化、多语言法律术语库动态更新、定制化分词模型设计… · 2026/9/23 15:34:50

TanStack技术生态解析:现代化前端数据管理实践
TanStack技术生态解析:现代化前端数据管理实践

1. TanStack技术生态全景解析TanStack(原React Query团队)是一套现代化前端数据管理工具集合,其核心设计理念是解决应用状态与服务器状态之间的"鸿沟"问题。不同于传统状态管理库(如Redux)只关注客户端状态&… · 2026/9/23 15:34:50

YOLOv11工业质检实战:从数据标注到部署的零件表面缺陷检测全流程
YOLOv11工业质检实战:从数据标注到部署的零件表面缺陷检测全流程

简介:这份PDF文档是一份面向工业视觉工程师、算法学习者与质检从业者的YOLOv11实战教程,旨在弥补传统人工质检效率低、成本高的短板,系统拆解零件表面缺陷检测从原理到落地的完整路径。资源包内仅含1个PDF文件,压缩包大小约2.14MB… · 2026/9/23 15:34:50

MemOS 记忆操作系统:把 LLM 记忆变成可调度、可解释的一级系统资源
MemOS 记忆操作系统:把 LLM 记忆变成可调度、可解释的一级系统资源

人工智能大模型Agent 记忆AI AgentRAG知识图谱dsh-plugin 【免费下载链接】MemOS Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support. 项目… · 2026/9/23 15:34:50

Learn Harness Engineering 参考资料库:把模型当作功能性 Harness 而非零散文件集合
Learn Harness Engineering 参考资料库:把模型当作功能性 Harness 而非零散文件集合

Learn Harness Engineering 参考资料库:把模型当作功能性 Harness 而非零散文件集合 【免费下载链接】learn-harness-engineering Harness engineering beginner tutorial, from 0 to 1 项目地址: https://gitcode.com/gh_mirrors/le/learn-harness-engineering … · 2026/9/23 15:34:44

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码