HarmonyOS应用开发实战:猫猫大作战-merge-detect 合并检测算法
前言在「猫猫大作战」中每次猫咪着陆或新猫出现后需要检测是否有三只以上同级猫咪相邻。合并检测是游戏逻辑的核心环节。一、合并检测privatedetectMerges():void{consttoMerge:{x:number;y:number}[][];// 遍历棋盘所有位置for(lety0;yGameConfig.BOARD_HEIGHT;y){for(letx0;xGameConfig.BOARD_WIDTH;x){constcatthis.board[y][x];if(!cat||cat.falling)continue;// 查找同级邻居constneighborsthis.findSameLevelNeighbors(x,y,cat.level);if(neighbors.length2){toMerge.push({x,y},...neighbors.slice(0,2));}}}this.processMergeBatch(toMerge);}二、邻居查找privatefindSameLevelNeighbors(x:number,y:number,level:CatLevel):{x:number;y:number}[]{constdirections[[-1,0],[1,0],// 左右[0,-1],[0,1],// 上下];constneighbors:{x:number;y:number}[][];for(const[dx,dy]ofdirections){constnxxdx;constnyydy;// 边界检查if(nx0||nx5||ny0||ny8)continue;constcatthis.board[ny][nx];if(cat!cat.fallingcat.levellevel){neighbors.push({x:nx,y:ny});}}returnneighbors;}三、批量合并privateprocessMergeBatch(cats:{x:number;y:number}[]):void{// 去重constuniquenewSet(cats.map(c${c.x},${c.y}));if(unique.size3)return;// 取前三个consttoRemoveArray.from(unique).slice(0,3).map(k{const[x,y]k.split(,).map(Number);return{x,y};});// 执行合并constfirsttoRemove[0];constcatthis.board[first.y][first.x];if(!cat)return;// 移除this.removeCats(toRemove);// 升级constnewLevelMath.min(cat.level1,CatLevel.LEGENDARY)asCatLevel;this.createCatAt(first.x,first.y,newLevel);// 递归this.tryMergeAt(first.x,first.y);}四、检测时机时机触发说明猫咪着陆后立即检测新停落的猫合并升级后递归检测新生成的猫新猫投放后检测新猫位置防止重叠五、最佳实践全盘扫描 vs 局部检测着陆猫只检测局部批量合并全盘扫描去重处理同一个猫可能被多次检测到递归链合并后立即检测新位置性能控制MAX_CHAIN防止无限递归总结合并检测扫描棋盘查找同级相邻猫咪触发合并升级。核心要点四方向邻居检测、 批量合并去重、 递归链式响应。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源GameEngine 源码第 124 篇forEch-update第 126 篇level-up第 130 篇merge-chain

相关新闻

Agent Harness、Loop、Graph:别再把三种 Agent 工程混成一件事

Agent Harness、Loop、Graph:别再把三种 Agent 工程混成一件事

写这篇文章时,配图连续出了两次错。 第一张 Harness 信息图,把「执行控制」画了两遍。 第二张 Graph State 图,四个主标签都对,却擅自补了一段看起来专业、实际不严谨的小字。 有意思的是,两次调用都返回成功。文件…

2026/7/30 3:01:48 阅读更多 →
注意力机制的效率革命回顾:从O(n²)到O(n)的演进路径与技术取舍

注意力机制的效率革命回顾:从O(n²)到O(n)的演进路径与技术取舍

注意力机制的效率革命回顾:从O(n)到O(n)的演进路径与技术取舍 一、问题的起点:二次复杂度的代价 自注意力机制是Transformer架构的核心创新,但也是其最昂贵的组件。标准缩放点积注意力的计算过程可以分解为三步:计算Q和K的点积得…

2026/7/30 3:01:48 阅读更多 →
前端JS源码安全分析:登录页面渗透测试实战与漏洞挖掘

前端JS源码安全分析:登录页面渗透测试实战与漏洞挖掘

1. 项目概述:为什么登录页面是渗透测试的“黄金入口”干了这么多年渗透测试,我越来越觉得,登录页面就像一栋大楼的正门。表面上看起来光鲜亮丽,有保安(验证码)、有门禁(密码)&#x…

2026/7/30 3:01:48 阅读更多 →

最新新闻

RapidIO技术在嵌入式系统中的核心价值与应用实践

RapidIO技术在嵌入式系统中的核心价值与应用实践

1. RapidIO技术标准在嵌入式系统中的核心价值第一次接触RapidIO是在2015年参与某军工通信项目时,当时系统需要处理多DSP芯片间的海量数据交互。传统PCIe总线在传输稳定性和延迟表现上始终达不到要求,直到团队引入RapidIO技术才彻底解决了这个痛点。这种专…

2026/7/30 3:13:15 阅读更多 →
MAA明日方舟助手:终极解放双手的智能自动化解决方案

MAA明日方舟助手:终极解放双手的智能自动化解决方案

MAA明日方舟助手:终极解放双手的智能自动化解决方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitco…

2026/7/30 3:13:15 阅读更多 →
作业444

作业444

1.系统搭建及初始化关闭selinx[rootlocalhost ~]# systemctl disable --now firewalld[rootlocalhost ~]# systemctl status firewalld 更换时间同步服务器[rootserver ~]# date -s "2026-7-28 18:20:55"安装依赖[rootserver ~]# dnf install -y gcc gcc-c make cma…

2026/7/30 3:13:15 阅读更多 →
数值计算实战:从浮点数精度到算法稳定性的工程避坑指南

数值计算实战:从浮点数精度到算法稳定性的工程避坑指南

1. 项目概述:为什么数值计算是工程师的“第二门语言”?刚入行那会儿,总觉得数值计算是数学系或者搞科研的专家才需要深究的东西,离我们这些写业务代码、做应用开发的工程师很远。直到有一次,我负责一个金融产品的收益计…

2026/7/30 3:13:15 阅读更多 →
MIDI 到音频的神经网络合成:采样率与声部独立的权衡(续篇)

MIDI 到音频的神经网络合成:采样率与声部独立的权衡(续篇)

MIDI 到音频的神经网络合成:采样率与声部独立的权衡(续篇) 场景痛点 AI音乐生成管线产出MIDI文件。用户需要听到的不是MIDI——是WAV音频。传统方案用SoundFont采样库做MIDI→音频转换,效果听起来像廉价电子琴。钢琴音色塑料感明…

2026/7/30 3:13:15 阅读更多 →
JavaScript中this指向与call/apply/bind方法详解

JavaScript中this指向与call/apply/bind方法详解

1. JavaScript中的this指向解析在JavaScript开发中,this关键字可能是最令人困惑但又至关重要的概念之一。我见过太多开发者在这个问题上栽跟头,包括我自己早期也经常被它"戏弄"。与其它语言不同,JavaScript中的this不是固定不变的&…

2026/7/30 3:12:14 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻