摘要

在 Olden Era 的战斗里,被攻击的部队通常能反击一次。所以一个常见配合是:第一支友军先打,消耗掉目标唯一的反击,第二支友军再打就不会挨反击。研究搜索档 quick(只展开己方当前一次行动的搜索 AI)只看一步,看不到第二支友军的收益,因此在一道开发题 p0078 里陷入“谁都不先打”的循环,打满 100 回合平局。本实验先定位循环原因,再做一个只在出现这种机会时把视野从 1 次部队行动扩到 2 次的原型。原型能打破循环,但整体题目命中数没有提高,还引入了新的偏差,所以没有上线。

要回答的问题

p0078 的循环到底是不是“反击配合看不到”造成的?如果给搜索多看一步友军行动,能不能修好,又会不会弄坏别的题?

方法

先冻结 p0078 旧分支中 9 个状态(覆盖开局和一个重复周期),每处分别跑 quick、深度 2、完整当前回合等四种设置,并拆出每个首步结算后的分数组成。开局两个首步得分如下:

开局首步 结算后材料差 固定贴身项 其它项 单步总分
攻击水泽精灵 337.50 120 −6.00 451.50
移动到 8,6 393.90 120 −7.50 506.40

第一击造成 36 伤害、承受 62 反击,目标反击次数从 1 变 0;下一位行动的友军戟兵确实能无反击地攻击同一目标。把两次友军行动一起估值,攻击首步变为 542.00,深度 2 选择攻击。

原型“友军后续”:只有当根状态存在“攻击会耗尽目标最后一次反击、且下一位友军能无反击跟进”的机会时,所有根动作(包括移动、等待)统一从 1 次行动加到 2 次;其余排序和评分不变。

设置

36 道开发题(小型合成局面:三堆普通兵、无英雄),参考答案来自事先的完整回合求解;68 道保留题不读取。续玩沿用上一批冻结的 7 个首步分歧。

结果

指标 原 quick 友军后续原型
本回合参考命中 31/36 31/36
平均归一化损失 0.08947 0.07326
最大单次选择耗时 0.0236 秒 0.1161 秒

修好了 p0071、p0078,新增 p0030(等待改攻击)和 p0044(攻击改移动)的偏差。p0078 用原型续玩:即使强制先走旧移动,原型也在第 5 回合取胜;原 quick 同一首步打满 100 回合平局。

失败与负结果

对两处新增偏差各用四种续玩策略复查(16 条分支全部终局):p0030 新旧首步都赢,新攻击多剩 2/43/2/25 生命;p0044 也都赢,但新移动少剩 28/38/18/28 生命。“都赢”不代表没有副作用。p0019 在原型下新旧首步仍都输,说明等待问题没解决。

局限

全部是无英雄三堆的合成局面;平均损失变小不是胜率;耗时不是 14 堆或网页 4 秒预算的验收。这是 Simulator 当前规则下的行为,不是商业游戏反击规则的认证。

结论与下一步

原因定位成立,原型不上线。下一步改为“保留 quick 已完成的选择,只在它选择移动/等待时提出协同攻击并做同口径比较”,见实验 0008。