fix(genre): 解谜品类红线补两条(小批收敛环失败模式回写)
n=5+2 小批实测三例失败(gen2 自写符文生成器产 0 解盘面=不可解关 / gen3 renderMenu 未定义变量 cy 被 scene-fsm 隔离致 startBtn 恒 null 卡菜单 / gen6 重写删声明留使用 stepUntilMs 未定义 uncaught),全部被九门正确拦截。据失败模式回写资产侧:skill §9 增「重写盘面生成器必须保住可解性质(恰好 N 解/至少 1 解/干扰不撞规则)」与「render 回调未定义变量会被隔离成告警、命中区拿不到卡菜单」两条品类红线;模板 generateBoard 注释同锚可解性质。模板 13 测仍全绿、签名门全过。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
50d98ce937
commit
cabc53f71e
@ -139,6 +139,8 @@
|
||||
- ❌ 复杂谜题编辑器 / 用户出题 → 超出便宜档;盘面一律 core 纯逻辑程序化生成(受控随机,可复现)。
|
||||
- ❌ 超过 2 个主机制(谜盘+消除+记忆混一款)→ 聚焦 1 主范式 + 1 成长点缀。
|
||||
- ❌ **「解」不在取证面上**——这是解谜品类的头号验收翻车点:**`_forensicsView().state().targets` 必须兼职"求解器"——当前**该点的正确目标**标 `occupied:true`、其余(干扰项/已清/锁定中)标 `false`**;自动验收只点 `occupied:true` 的格子,解谜逻辑再对、occupied 标错 = 九门 H 验不到进展 = 好游戏被误判。多步范式(翻牌配对:先翻 A 再翻 B)必须**随状态把"下一步该点的"跟标 occupied**(翻开 A 后,把 A 的配对牌标 occupied);做不到就改单步范式。
|
||||
- ❌ **重写盘面生成器而丢「可解性质」**——解谜品类第二号翻车点(批产实测:自写符文生成器产出 0 解盘面 → 第一关就无解 → 永无 occupied 目标 → 九门 H 挂):脚手架的 `generateBoard` 保证**每关恰好 N 个解、至少 1 个解、干扰项绝不撞规则**;换主题/换规则维度**优先只改 THEME/LEVELS 表**、别动生成器;确要自写规则系统,必须保住同一性质(生成后自检一遍「符合规则的格数 == 预期解数、≥1」,0 解=不可解关=废稿)。
|
||||
- ❌ **在场景 render 回调里引用未定义变量**——解谜档的按钮命中区(开始/再来)靠 render 返回值回写(`menuStartBtn = renderMenu(...)`),render 回调抛错会被 scene-fsm **隔离成告警不崩**,后果是命中区永远拿不到 → 点不进游戏、卡菜单(批产实测:renderMenu 里一个未定义的 `cy` 让整局 E/G/H 三门连锁挂)。改完 render 先顺一遍所有变量来源。
|
||||
- ❌ 点错即死 / 三错清零重开 → 错点轻惩罚(§3),乱点不该赢、但点错不该死。
|
||||
- ✅ 留下的:规则匹配谜盘、找目标、顺序推理、点选消除、记忆配对(守 occupied 纪律)、星级收集、关卡阶梯、连击计分 —— 全在 11 注入插件 + 单屏 + 便宜模型可生成范围内。
|
||||
|
||||
|
||||
@ -193,6 +193,8 @@ function forceMismatch(attrs, rule, theme) {
|
||||
|
||||
/**
|
||||
* 生成一关盘面(纯函数):恰好 matches 个格子符合规则、其余全不符合——保证「全找到=过关」可判。
|
||||
* ★可解性质(改我之前先读):任何改动必须保住「每关恰好 N 个解、至少 1 个解、干扰项绝不撞规则」——
|
||||
* 0 解盘面 = 不可解关 = 永无 occupied 目标 = 九门 H 挂(实测翻车点)。换主题/维度优先只改 THEME/LEVELS。
|
||||
* @param {number} levelIdx 关序(0 起)
|
||||
* @param {()=>number} rng 受控随机源(boot.ctx.random)
|
||||
* @param {number} viewW / viewH 视口
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user