三消·障碍挑战(欢乐消消乐)AI · Claude Fable 5
游戏信息
生成提示词
可复制以下提示词,用于学习或复现这款游戏。
《三消·障碍挑战(欢乐消消乐)》生成提示词
用途:将本提示词交给 AI 编程助手,可完整复现本游戏。
请生成一款森林主题 9×9 三消闯关网页游戏,单文件 index.html、零外部依赖(Canvas + WebAudio + localStorage),逻辑分辨率 480×854(9:16 竖屏),格子 48px。
一、核心规则
- 9×9 网格,格值:-1=青苔石障碍 / 0~5=小动物(🐸🐥🐵🐘🐰,第 5 关后加 🦊,emoji 直接绘制在粉彩圆角方块上)
- 拖拽或点选交换相邻方块;仅当交换能形成 ≥3 连时生效并消耗 1 步,否则播放换回动画(不耗步);任一侧为障碍时拒绝交换并抖动+低音提示
- 障碍物:不可选中/交换/消除、不参与掉落(永久占位至本关结束)
- 达到本关目标分晋级(无尽闯关);步数耗尽未达标则失败、从第 1 关重来
二、数值公式(严格执行)
- 目标分 =
min(8000, round(80 × 1.10^(关-1))) - 步数 =
max(12, 20 - floor((关-1)/3)) - 障碍数 = 第 1 关 0;否则随机
[0, min(关-1, 8)] - 颜色数 = 关 ≤5 为 5 种,之后 6 种
- 计分:3 连 +10 / 4 连 +20 / ≥5 连 +40;一次消除多组时分数累加并显示
COMBO ×组数;连锁掉落消除(连消)每次额外 +5 - 本关分与总分分开:本关分对照目标,总分用于结算与历史最高
三、消除流程(相位状态机)
idle → swap(0.1s) → [成功] clear(0.18s 缩小闪烁) → fall(0.34s) → 再检测 → …循环 → afterResolve;失败分支swapback(0.1s)- 掉落压缩跳过障碍格:按列收集非障碍格位(自下而上)与现存动物(保持相对顺序),从底部依次填充,空位从棋盘上方外生成新动物落入(带错峰延迟)
- 掉落偏移符号约定:
yOff = (新行 - 旧行)×格宽(正值=下落距离),显示y = 目标y - yOff×(1-缓动)——符号写反会导致方块从下方升起 - 交换动画插值:数据先交换,两格各自"从对方格子飞回数据所在格",swap 与 swapback 用同一公式(仅数据状态不同,不要反转插值方向)
- afterResolve 顺序:达标→过关金光 "NEXT LEVEL" → 步数为零→变暗 "GAME OVER" → 无可行交换→自动洗牌(toast 提示)
四、棋盘生成与检测
- 初始填充逐格随机并规避即时三连(每格最多重试 20 次);生成后校验存在可行交换(枚举全部相邻对试换+局部 matchAt),无解则重生成(上限 60 次)
- 障碍随机撒点后再填动物;
matchAt(g,r,c)做行列双向延伸计数
五、表现
- 森林背景预渲染:天空→草地渐变、远树、草丛笔触、五瓣小花;深绿圆角棋盘底板;棋盘格明暗相间
- 青苔石头:灰绿圆角方块+深色石纹椭圆+两块青苔斑
- 选中高亮金框;消除粒子(用方块底色);得分飘字;进度条(当前分/目标);HUD:关卡+障碍数/本关分/步数(≤5 变红)/右上喇叭一键静音
- 底部洗牌道具按钮(有库存时显示)
六、系统与音频
- 成就 5:首次过关/闯关达人 Ⅰ·Ⅱ·Ⅲ(通过第 5/10/20 关)/破障先锋(障碍≥5 的关通关)
- 每日签到:每日 3 次洗牌道具(使用时连障碍布局一起重随机);连续 3/7 天各送一个步数+3 道具(下一关开局自动消耗)
- 记录:最高闯关数(=到达过的最大关号)、历史最高单局总分、局数
- 音效:噗交换/叮+沙沙消除/咚咚障碍阻挡/上升音阶连击/号角过关/低沉失败;BGM 轻快 8-bit 循环
交付要求
index.html+config.json+icon.png(256×256 平滑风格:2×2 动物方块+青苔石+森林背景)node --check校验;无头测试:全部数值公式、初始盘无三连且有解、完整消除链后无空洞无残留三连、步数消耗、障碍拒绝交换