摘要

实验 0055 确认本地 Arena 的攻击预览在测试范围内符合合同。本实验想用它做一件具体的事:当 Fair 选了一次普通攻击、但另一个待行动的敌方兵组可能被一击消灭时,多看一眼本地预览,若预览的最低伤害已经够消灭它,就改选那次攻击。比较三种选择——原 Fair(F)、只用公开平均伤害的同候选对照(A)、加一次本地预览的版本(P)。准入要求至少 2 个不同来源出现 P 同时不同于 F 和 A。结果在 16 个根上三者完全相同,信号来源为 0,准入失败,原计划的 40 局开发和 60 局保留对局都没有开始。

要回答的问题

一次额外的本地伤害显示,能否在已有样本里让 AI 改变至少几次收尾选择?若连改选都没有,就不值得花完整对局去测胜负。

方法

  1. F 选择合法普通攻击;候选 B 是攻击另一个敌人的合格普通攻击中 Fair 公开分最高的一个,目标必须在公开待行动队列中。
  2. 只有当 F 的目标剩余生命已知、且公开平均伤害低于它时才考虑改选。A:B 的公开平均伤害覆盖其生命就选 B,否则选 F。
  3. P:对 B 最多读一次本地预览;只有在请求、会话、版本、行动者和目标都绑定、类型为近战或远程、且显示的最低伤害 ≥ B 的剩余生命时才改选。这个数字也不是完整动作必杀的保证(移动反应、幸运、复活等未覆盖)。
  4. 每个会话版本最多申请一次预览。

该模式明确标注为“仅本地 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)。