Files
HexTrails/docs/v0.5-quality-audit.md

204 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# v0.5 千关质量独立审核
审核日期:2026-09-12。对象:正式冻结的 1000 关,流水线标识 `ef59b3d561147031a8cbfd059c67fabe01054039e89cba4c27c7b6408d05b03d`。
**结论:1000 关通过本轮规则、回放与既定自动体验门槛。旧版“别枚长路冒充主目标”和“清完大部分棋子才让指定门生效”的问题已修复。本轮未发现必须按规则或既定自动门槛退回的关卡;视觉辨识、动画观看感受、真人难度与长期新鲜感仍未由这些数据证明。** 下文列出继续试玩时应优先观察的具体关卡。
## 1. 数据与审核方法
直接读取 [1000 关冻结布局](../levels/v0.5.json)、[逐关回放与评价](../levels/v0.5-analysis.json)、[生成配方及源码哈希](../levels/v0.5-recipes.json)。核对清单中的全部源码哈希与当前文件一致。本审核没有修改布局、生成器或筛选门槛。
本次独立检查包括:
- 每关重新调用正式 `solveRotations`,检查有效数据、无搜索触顶、最少旋转数,以及整体旋转/镜像归一后的精确重复。
- 用正式 `Game` 重放每关的参考解、作者解及 20 种策略,共 **22,000 套回放、273,702 个成功动作**。全部清盘,存档中的逐棋子弯数、步骤数、动作序号与朝向均和实际执行一致。
- 验证每关在 20 策略中至少 16 条出现任意长路、至少 10 条出现指定主长路;前 6 策略至少 4 条出现指定主长路。清挡关至少 8/20 兑现指定主棋子的轨道内清挡长路,反差关至少 6/20 兑现指定主反差。原有前 6 策略门槛同时核验。
- 对全部 283 个清挡关额外核验:开局指定挡子可走,只移去这枚挡子,主棋子即能离场。对反差关与分段关分别核验必须旋转、至少两次旋转。
- 另挑 30 关扩展至 32 策略;其中后 12 个种子未参与本批逐候选筛选,单独列为扩展检查。
这里的“长路”统一用 **至少 6 弯**作统计带;生产中指定主奖励仍按各配方的 `minHeroBends` 核验。这个分界是本轮诊断口径,不是论文给出的质量标准。
“首次可点长路”是在一条完整回放的每个动作前,用真实剩余棋子和底盘朝向检查是否已存在可成功离场的长路。它表示**沿该顺序首次可点的时点**,不声称已经穷尽所有操作,找到全局最快的奖励解。
所有策略能读取精确可出信息,并按有限规则选择点击与旋转;它们没有模拟人看错轨道、误触、注意力转移和动画遮挡。回放次数不是玩家人数,也不等于相互独立的解法数量。
## 2. 正式版的可靠性与奖励曝光
| 项目 | 结果 |
| --- | ---: |
| 数据有效、独立可解、无搜索触顶 | 1000/1000 |
| 精确整体对称去重后的布局 | 1000 |
| 作者解及参考解完整清盘 | 各 1000/1000 |
| 已存策略完整清盘 | 20000/20000 |
| 参考解至少出现一条长路 | 1000/1000 |
| 每关 20 策略的任意长路出现次数范围 | 16–20 |
| 每关 20 策略的指定主长路出现次数范围 | 10–20 |
| 清挡关指定清挡长路兑现次数范围 | 8–19/20 |
| 反差关指定长路反差兑现次数范围 | 9–20/20 |
| 必须旋转的关卡 | 432/1000 |
| 最少旋转数上限 | 2 |
长路与主长路应分开看:
| 策略组 | 回放数 | 任意长路出现 | 指定主长路出现 |
| --- | ---: | ---: | ---: |
| 外圈优先、短路优先、长路优先、挡子优先 | 4000 | 4000 | 4000 |
| 较早旋转 | 1000 | 991 | 952 |
| 第一组固定种子的随机探索 | 1000 | 982 | 875 |
| 其余 14 组固定种子的随机探索 | 14000 | 12830 | 11592 |
| 全部 | 20000 | 18803 | 17419 |
四种常规策略虽然点击次序不同,但都先清当前能走的棋子再旋转。本游戏中成功消除只减少占用,因此它们能清掉的集合常常相同;本批四者路径分类总数完全一致。这是规则与策略造成的相关性,不能视为四份独立玩家证据。所有比例均只描述指定算法的执行结果。
精确去重覆盖整体棋盘、轨道、棋子和箭头的同步对称变换,并忽略名称、ID 与颜色。只转底盘会改变规则状态,未被误当成整体等价变换。**1000 个精确不同布局仍不自动证明有 1000 种独特体验。**
## 3. 回报时点和实际行进构成
参考解的 10208 次成功离场中:
| 行进类型 | 次数 | 占成功离场比例 |
| --- | ---: | ---: |
| 直出,0 弯 | 6181 | 60.6% |
| 1 弯 | 1734 | 17.0% |
| 2–5 弯 | 730 | 7.2% |
| 至少 6 弯 | 1563 | 15.3% |
共有 673 关的参考解恰好只有一条长路。单路径弯数最高 65,步骤数最高 95,两项分别取最大值。直出棋子可以承担让路、教学和收尾作用,不能仅按弯数淘汰;同时,“1000 关都有长路”也不能被解读成多数点击都在长路行进。
323 关开局已经有可直接点击的长路。沿最少旋转参考解,343 关需要先完成至少一半消除,才首次出现可点长路;沿作者解为 221 关,沿外圈优先策略为 554 关。三者差异说明:**奖励是否早已可获得,与玩家/回放是否选择先去获得,是两件事。**
| 体验类型 | 关数 | 平均棋子数 | 参考顺序中先消除至少一半才出现可点长路 | 参考解首条长路是最后一枚 |
| --- | ---: | ---: | ---: | ---: |
| 长路巡游 | 285 | 8.16 | 0 | 0 |
| 清挡放行 | 283 | 11.28 | 0 | 10 |
| 轻巧反差 | 120 | 10.57 | 111 | 0 |
| 旋转换路 | 172 | 10.17 | 127 | 0 |
| 分段释放 | 140 | 11.92 | 105 | 2 |
关键判断:
- **清挡已从结构上变轻巧。** 全部 283 关都能开局先清指定挡子,立即点击主棋子。第 3、6、9 关沿作者解都是一次清挡后可点长路。外圈策略可能晚点这个挡子,那是顺序选择,不能再说关卡强制先清其余棋子。
- **反差可以早兑现。** 全部反差关作者解都先做一次旋转再点目标。参考解先清免费出口,导致 111/120 关的首次长路偏后,不代表这些关必须先完成那些消除。
- **旋转与分段关仍需检查连玩节奏。** 第 697 关沿参考和作者顺序都先消除 12/14 枚,才出现可点长路;其中 13 枚为直出。第 949 关沿参考顺序先消除 13/14 枚,作者顺序先消除 12/14 枚。这里的时点不排除其他旋转顺序更早兑现,但值得优先观察是否显得前段过于机械。分段关当前意图是“至少两次换路后放出主路线”,没有宣称每个阶段都出现长路。
## 4. 未参与筛选种子的扩展检查
取第 1、4、8、12、16、20 章各五种体验,共 30 关,六种路线家族各 5 关。每组先优先补足较少覆盖的家族,再取原 20 策略中主长路曝光较低、关号较早的关卡。**这是偏向薄弱处的目的抽样,不是随机代表样本。**
30 关扩展到 32 策略后,960 次策略回放全部清盘。前 20 种和生产筛选重合;真正新增的后 12 种共 360 次:
| 范围 | 回放数 | 任意长路出现 | 指定主长路出现 |
| --- | ---: | ---: | ---: |
| 这 30 关已参与筛选的 20 策略 | 600 | 546(91.0%) | 459(76.5%) |
| 这 30 关未参与本批筛选的后 12 策略 | 360 | 291(80.8%) | 231(64.2%) |
后 12 种全部为随机探索,而前 20 种还包括相关性很高的常规策略,组别构成也不同。因此,两行差值同时包含未参与筛选的种子变化和策略构成差异,不能直接当作一个“过拟合百分比”,更不能换算成玩家概率。
下表最后一列只在清挡/反差关记录“指定目标实际兑现对应长路”的次数:
| 关号 | 体验/路线 | 已筛选20种:任意长路 | 新增12种:任意长路 | 新增12种:主长路 | 新增12种:主清挡/反差 |
| --- | --- | ---: | ---: | ---: | ---: |
| 1 | 长路巡游/回折 | 16/20 | 6/12 | 6/12 | — |
| 13 | 清挡放行/编织 | 16/20 | 8/12 | 2/12 | 2/12 |
| 12 | 轻巧反差/环绕 | 20/20 | 11/12 | 5/12 | 4/12 |
| 46 | 旋转换路/双叶跨区 | 17/20 | 8/12 | 8/12 | — |
| 39 | 分段释放/螺旋 | 20/20 | 12/12 | 12/12 | — |
| 158 | 长路巡游/花瓣 | 18/20 | 11/12 | 11/12 | — |
| 166 | 清挡放行/编织 | 19/20 | 11/12 | 10/12 | 2/12 |
| 161 | 轻巧反差/回折 | 20/20 | 11/12 | 5/12 | 5/12 |
| 189 | 旋转换路/双叶跨区 | 17/20 | 9/12 | 7/12 | — |
| 164 | 分段释放/螺旋 | 20/20 | 12/12 | 12/12 | — |
| 367 | 长路巡游/环绕 | 20/20 | 12/12 | 12/12 | — |
| 366 | 清挡放行/花瓣 | 20/20 | 12/12 | 12/12 | 5/12 |
| 357 | 轻巧反差/环绕 | 17/20 | 8/12 | 5/12 | 5/12 |
| 368 | 旋转换路/螺旋 | 20/20 | 12/12 | 7/12 | — |
| 352 | 分段释放/花瓣 | 20/20 | 12/12 | 12/12 | — |
| 563 | 长路巡游/双叶跨区 | 16/20 | 7/12 | 5/12 | — |
| 554 | 清挡放行/编织 | 16/20 | 9/12 | 4/12 | 3/12 |
| 553 | 轻巧反差/回折 | 16/20 | 7/12 | 3/12 | 3/12 |
| 576 | 旋转换路/编织 | 16/20 | 10/12 | 8/12 | — |
| 557 | 分段释放/回折 | 19/20 | 10/12 | 9/12 | — |
| 771 | 长路巡游/双叶跨区 | 18/20 | 6/12 | 4/12 | — |
| 790 | 清挡放行/花瓣 | 19/20 | 10/12 | 8/12 | 6/12 |
| 769 | 轻巧反差/回折 | 18/20 | 8/12 | 4/12 | 3/12 |
| 782 | 旋转换路/螺旋 | 19/20 | 10/12 | 10/12 | — |
| 773 | 分段释放/环绕 | 20/20 | 12/12 | 12/12 | — |
| 951 | 长路巡游/双叶跨区 | 16/20 | 6/12 | 4/12 | — |
| 978 | 清挡放行/编织 | 16/20 | 10/12 | 6/12 | 5/12 |
| 953 | 轻巧反差/环绕 | 17/20 | 7/12 | 4/12 | 3/12 |
| 952 | 旋转换路/花瓣 | 20/20 | 12/12 | 12/12 | — |
| 968 | 分段释放/螺旋 | 20/20 | 12/12 | 12/12 | — |
**优先试玩观察:**
- 第 13 关:单门立即放行确实成立,但额外旋转探索中指定主长路和主清挡都只有 2/12;任意长路为 8/12。观察玩家是否能辨认指定挡子,以及主动换路后是否仍有足够回报。
- 第 553 关:新增策略主长路与主反差都是 3/12,任意长路为 7/12。检查“一转就懂”的视觉提示与不同旋转方向的体验。
- 第 1、771、951 关:新增策略任意长路各 6/12。它们开局已有长路,常规点击能够兑现;弱点主要发生在主动旋转后的替代路线。不能据此直接否定直接巡游关,也不应称所有探索方式都能保留同一奖励。
这些是后续体验检查优先级,不是本轮规则失败。若之后使用这些额外种子继续调参,它们便不再是下一批的未参与筛选种子,下一批应换一组独立记录的检查种子。
## 5. 难度曲线、工作量与相邻变化
结构档位为 D1 319、D2 239、D3 288、D4 145、D5 9。评分只使用最少旋转、放行层次、开局出口约束及侧擦碰阻挡等结构量;长路弯数没有直接加到难度分中。所有关卡仍标记 `structural-estimate`、`playerCalibrated: false`。
| 章 | 平均结构档位 | 平均棋子数 | 必须旋转 | 参考顺序中长路偏后 |
| --- | ---: | ---: | ---: | ---: |
| 1 | 1.98 | 7.22 | 20/50 | 17/50 |
| 2 | 2.26 | 7.54 | 22/50 | 18/50 |
| 3 | 2.06 | 8.24 | 20/50 | 18/50 |
| 4 | 2.18 | 8.96 | 21/50 | 18/50 |
| 5 | 2.44 | 8.90 | 23/50 | 18/50 |
| 6 | 2.20 | 8.76 | 20/50 | 15/50 |
| 7 | 2.30 | 9.82 | 22/50 | 16/50 |
| 8 | 2.34 | 9.78 | 21/50 | 17/50 |
| 9 | 2.34 | 10.12 | 23/50 | 18/50 |
| 10 | 2.28 | 10.92 | 23/50 | 14/50 |
| 11 | 2.40 | 10.24 | 24/50 | 21/50 |
| 12 | 2.40 | 10.72 | 21/50 | 15/50 |
| 13 | 2.24 | 10.92 | 20/50 | 15/50 |
| 14 | 2.40 | 11.34 | 23/50 | 18/50 |
| 15 | 2.20 | 11.48 | 21/50 | 17/50 |
| 16 | 2.36 | 11.78 | 21/50 | 17/50 |
| 17 | 2.32 | 11.88 | 21/50 | 15/50 |
| 18 | 2.30 | 11.80 | 20/50 | 17/50 |
| 19 | 2.30 | 12.10 | 23/50 | 19/50 |
| 20 | 2.42 | 11.64 | 23/50 | 20/50 |
第一章平均结构档位 1.98,第 20 章 2.42,中间有波动;平均棋子数从 7.22 增至 11.64。**后期工作量的增加,比结构档位的增加更明显。** 这条曲线是当前编排与估计器的结果,尚不能说已匹配熟练玩家的成长。
同一种主体验连续最多 2 关;同一结构档位连续最多 3 关。相邻粗粒度体验签名相同的只有 1→2、195→196,均是巡游关,但路线家族不同。这适合保留作连续观感检查,不构成精确重复。反过来,签名不同也不能证明视觉上一定新鲜。
有 141 个相邻位置跨越至少 3 个结构档位,包含挑战到舒缓及舒缓到挑战两个方向。不能把这些跳动都判为坏节奏,也不能说已形成平滑真人难度曲线;应优先连续试玩第 31–40 关、第 49–56 关及后期章节交界。档位是序数估计,表中均值只用于比较当前编排轮廓。
## 6. 形状证据的边界
主棋子已行驶轨道中属于设计形状轨道的比例最低为 100%。这说明主路线没有依赖未标记的装饰轨道来满足长度,但**不等于每关把整朵花或整幅图形都走了一遍**。整盘已行驶的设计轨道比例最低为 10.4%,分母不同。
本报告没有逐一观看 1000 关动态图像,也没有检查全部手机尺寸下的触控、连点后的视觉遮挡和超长路线的跟随感。上述数字不能替代视觉辨识与实际播放检查。第 849 关现为编织巡游,第 850 关为花瓣分段释放;数据层面的类别差异已确认,视觉修改的效果应由单独的画面评审确认。
## 7. 旧版问题与本轮修复依据
本节仅描述旧流水线 `a2188a0951cf3985337e2d3cfaff5ca97f5dcd25c426c5373512f6b0e6684193`,其数字**未混入以上正式版指标**。
旧版虽有 1000 个可解布局和 22000 套可完成回放,仍有 61 关的前 6 策略一次也不走指定主长路;其他棋子的长路撑住了总指标。旧第 965 关沿参考解先清 16 枚,才出现唯一长路;32 策略只有 10 条出现任意长路,27 种随机探索没有一次兑现指定主清挡长路。这些结果推动了主棋子身份、即刻清挡和更广策略保留条件的修订。
正式版重验的具体变化:
- 四种常规策略现在分别在 1000/1000 关走到指定主长路。
- 第 965 关作者解改为第 1 个动作清挡、第 2 个动作启动 11 弯主路;20 策略任意长路 18 次、指定主长路 12 次、指定主清挡长路 10 次。
- 第 361 关指定主长路为 17/20;第 773 关为 20/20;第 798 关为 17/20。它们没有再用另一枚长路掩盖指定主目标的落空。
- 首次可点长路偏后的关数,沿参考顺序从 593 降至 343;这项变化也包含布局、棋子数量及回放顺序修改,不能单独归因于某一项算法。
这一轮证明了“可解”与“主体验确实出现”必须分开验收,也证明了门槛需要在实际候选上接受反例检查。它没有证明目前 16/20、10/20 等阈值是长期最优配置。
## 8. 可追溯标识
- 布局文件 SHA-256:`b3d599e637c1aa9820cbb9186cd9be49421d81b3e2ad206f4bfa1ee366f39017`
- 分析文件 SHA-256:`a691edd0cc78e750953934868e6bfc21e4c79c55088bbfa8d93c2eb0ba4b33c4`
- 生成流水线 SHA-256:`ef59b3d561147031a8cbfd059c67fabe01054039e89cba4c27c7b6408d05b03d`
- 正式重复核验入口:[verify-production-levels.mjs](../scripts/verify-production-levels.mjs)
- 策略、对称去重与评价定义:[campaign-evidence.js](../src/campaign-evidence.js)
- 设计依据:[现行关卡准则](level-design-principles-v2.md)、[关卡知识库](level-design-knowledge/README.md)
后续版本更换布局、规则或策略后,应重新核验并另存版本标识,不直接沿用本报告数字。