摘要

实验 0052 的开局等待没有带来收益,于是换一个问题:当 Fair 规则 AI 已经决定做普通攻击时,有没有另一个合法攻击能确定消灭一个还没行动的敌方兵组(从而拿掉它这回合的行动机会),而 Fair 漏掉了?准入要求至少 3 个来源、6 个能被公开信息确认的机会。事先审查接口时已经知道,现有公开伤害查询只给平均估计,不提供“完整动作后目标一定消失”的保证。唯一一次只读扫描证实了这一点:400 个合格决策、983 次查询,结果全部是部分估计(846)或未知(137)。实验按“接口能力不足”关闭。这不是证明没有击杀机会,也不是 Fair 已经最优,更不是训练失败。

要回答的问题

只用玩家可见的信息(公开观察、合法菜单、公开规则查询),能否在旧对局里确认足够多的“替代攻击必杀待行动敌军、而原攻击做不到”的机会?

方法

  • 语料:0227 实验旧训练中的 Fair 对 Fair 轨迹,来源 1000000 起按编号和步序扫描,不按输赢挑选。
  • 合格决策:Fair 实际选择普通攻击,且菜单里至少有两个不同的存活敌方普通攻击目标。替代目标必须与原目标不同,且处在公开待行动队列(首次行动或等待恢复)中。
  • 信息边界:只用保存的公开观察、公开菜单和所选动作,调用公开规则事实接口;不构造完整战斗状态,不读私有事件、随机数或胜负,不用后续事件倒推“当时必杀”。
  • 门槛:至少 3 个来源、6 个可确认机会;确认必须覆盖完整动作导致目标消失,且原动作没有同等效果。上限 400 个合格决策 / 15 分钟。

事先静态审查了几个现有接口:公开伤害查询只给单个主要伤害包的平均值,明确排除隐藏修正、幸运、拦截等;悬停预览需要完整状态;公开攻击序列是条件情景;Fair 本身已经有一项“预计伤害覆盖生命时的收尾加分”。这些都不是必杀保证。这个先验事实写进了协议,没有伪装成盲测发现。

设置

单进程、Core Python 3.12.13,零新局、零学习、零状态构造。

结果

唯一扫描 1.533087 秒完成,因触及 400 个合格根上限而停止。

项目 数量
扫描的物理决策 911
Fair 未选普通攻击 389
普通攻击但目标少于 2 个 122
合格根 400
有待行动替代目标的根 267(结构机会,不是必杀)
公开查询 983 = 400 原动作 + 583 替代
查询支持度 846 部分估计、137 未知,全部不是精确预览
可确认必杀机会 未知(不是 0)

137 个未知中,123 个是“条件性攻防未投影”,14 个是“可见强制伤害极值未投影”。即使把它们补成平均值,也得不到完整动作的必杀保证。983 次查询共 0.338541 秒,只是静态规则查询耗时,不是 AI 整步延迟。

实际读到的旧来源为 1000000–1000009 全部,以及 1000010 的前 34 步;1000011–1000015 没有打开。

另有 12 项公开伤害边界软件检查通过;独立核验重读 911 步,400 个唯一根、983 次查询与公开菜单/队列/血量一致,没有额外调用。

失败与负结果

  • 准入未通过,原因是现有公开合同不能提供必杀保证,可确认机会为 null。
  • 定位文件时有几次通配符路径、旧文件名和引号错误,均为只读查询失败,没有改动原材料。

局限

  • 267 不是确认数,983 也不是独立样本;400 个根来自同一批 Fair 对 Fair 轨迹。
  • 本实验只审核当前 Simulator 软件合同,不是对正式游戏机制的认证。
  • Fair 是否真的错过必杀、错过多少、是否导致败局,都没有证据。

结论与下一步

关闭为“接口能力不足、机会未知”,不实现“必杀优先”策略,也不运行原计划的 8 开发 / 12 保留对局。下一步评估玩家在游戏里悬停目标时能看到的攻击预览,能否作为合法的公开输入(实验 0054)。