摘要
实验 0055 确认本地 Arena 的攻击预览在测试范围内符合合同。本实验想用它做一件具体的事:当 Fair 选了一次普通攻击、但另一个待行动的敌方兵组可能被一击消灭时,多看一眼本地预览,若预览的最低伤害已经够消灭它,就改选那次攻击。比较三种选择——原 Fair(F)、只用公开平均伤害的同候选对照(A)、加一次本地预览的版本(P)。准入要求至少 2 个不同来源出现 P 同时不同于 F 和 A。结果在 16 个根上三者完全相同,信号来源为 0,准入失败,原计划的 40 局开发和 60 局保留对局都没有开始。
要回答的问题
一次额外的本地伤害显示,能否在已有样本里让 AI 改变至少几次收尾选择?若连改选都没有,就不值得花完整对局去测胜负。
方法
- F 选择合法普通攻击;候选 B 是攻击另一个敌人的合格普通攻击中 Fair 公开分最高的一个,目标必须在公开待行动队列中。
- 只有当 F 的目标剩余生命已知、且公开平均伤害低于它时才考虑改选。A:B 的公开平均伤害覆盖其生命就选 B,否则选 F。
- P:对 B 最多读一次本地预览;只有在请求、会话、版本、行动者和目标都绑定、类型为近战或远程、且显示的最低伤害 ≥ B 的剩余生命时才改选。这个数字也不是完整动作必杀的保证(移动反应、幸运、复活等未覆盖)。
- 每个会话版本最多申请一次预览。
该模式明确标注为“仅本地 Web 实现”,不宣称商业游戏的公平读取认证。原 Fair、公开接口和生产代码都未改动。
设置
固定输入为 0054 的 16 个根(来源 1000000–1000007 各 2 个),从原训练记录恢复状态,不推进任何动作。门槛:≤ 16 次新读取、≤ 300 秒、≥ 2 个不同来源 P ≠ F 且 P ≠ A。
结果
| 指标 | 门槛 | 实际 |
|---|---|---|
| 来源 / 根 | 8 / 16 | 8 / 16 全部绑定 |
| 新预览查询 | ≤ 16 | 7 次,全部有值 |
| 未查询根 | — | 9(没有合格的待行动替代目标) |
| P 异于 F 且异于 A | ≥ 2 来源 | 0 来源 / 0 根 |
| A 异于 F | — | 0 根 |
| 准入计时 | ≤ 300 秒 | 0.641152500 秒 |
| 新对局 / 学习更新 / 保留读取 | 0 | 0 / 0 / 0 |
七次实际查询(显示下端和平均值都低于目标剩余生命):
| 来源 | 步 | 候选目标 | 剩余生命 | 公开平均 | 本地显示 |
|---|---|---|---|---|---|
| 1000002 | 12 | esquire_upg_alt | 2380 | 487.500 | 486–567 |
| 1000004 | 4 | trick_demon_upg | 1400 | 566.176 | 447–516 |
| 1000005 | 2 | lightweaver | 2100 | 586.486 | 451–520 |
| 1000005 | 3 | frostworm_rider | 1920 | 521.333 | 375–488 |
| 1000006 | 14 | ent | 3384 | 868.421 | 782–955 |
| 1000007 | 2 | unicorn | 1360 | 255.814 | 112–298 |
| 1000007 | 6 | flicker | 2000 | 634.503 | 500–642 |
20 项纯数据测试和 26 项相关软件检查通过;只读复核确认 16 个公开输入、Fair 选择和 7 次预览绑定都一致。
失败与负结果
- 准入失败:信号来源 0,不能写成“完整对战胜率 0 改善”,因为根本没有打对局。
- 报告同步脚本第一次运行时把一个段落误当表格行,抛出 StopIteration;正式实验早已完成,只补写缺失的索引,没有重跑实验。
- 首次文档检查因存档末尾多一个换行而断言失败,仅修正检查器。
局限
- 16 个根都是旧对局早期局面,不是收尾阶段的随机样本,可能使触发稀少;本轮没有扩样验证这一解释。
- 预览显示的是本地普通情景伤害,不等于完整动作必杀。
- 不能推出 Fair 全局最优或预览普遍无价值。
结论与下一步
按冻结条件关闭,不调阈值补过关,不把 P 加入默认 AI。下一步换一个思路:用本场已经公开观察到的普通伤害作为反馈,小幅修正 Fair 的伤害估计(实验 0057)。
Comments