摘要
此前的协同攻击控制器(见实验 0008、0009)只支持没有英雄的普通兵,遇到英雄状态会直接拒绝。真实对局里英雄会施法、做英雄攻击,免费施法也会打乱行动顺序。本实验做了一个独立的英雄版本,在四场已保存的 Simulator 测试对局中抽取 27 个状态检查兼容性和成本。结论:兼容性没问题,但几乎没有触发改选,没有新的棋力证据;成本上,法术多的局面明显更贵。
要回答的问题
英雄和法术存在时,协同攻击比较能否在 4 秒内正确返回?复杂节点的成本有多大?
方法
候选条件与普通兵版本相同:一次普通攻击把目标反击次数从 1 降到 0,双方存活,同回合下一位行动者是另一支友军,且它有对该目标的合法正伤害攻击。士气额外回合仍由同一部队行动时不算接力。两个根动作都用深度 2(按部队行动计)、每层 6 个候选、单个假想样本;免费施法不消耗深度,但消耗单独的免费动作额度 8。quick 已选攻击、英雄攻击、能力或法术时直接保留。侧查询隔离了真实未来随机数,但仍读取敌方构筑,标注为特权研究策略,不是公平 AI。
设置
四个来源是此前完整网页验证中的 fair/seed42、quick/seed81、strong/seed7、deep/seed20 四场 Simulator 测试局(不是商业游戏实战),先完整重放 452 个保存事件。抽样规则只看原记录:开局;前中后三段每方第一次移动/等待/跳过之前;每方第一次施法之前。缺的分层如实记缺,不换成方便的节点,最终 27 个状态。同局节点彼此相关。
结果
| 停止原因 | 状态数 |
|---|---|
| 基线已行动(8 次施法、4 次英雄攻击、1 次普通攻击) | 13 |
| 没有跟进机会 | 13 |
| 比较完成 | 1 |
唯一的比较在 quick/seed81 第 79 步(10 堆存活),仍选择移动;移动得分 34948.5729 是精确值,攻击的 34247.8731 是上界,足以拒绝改选。全部 27 次返回动作合法、回放一致,最长 2.2814 秒。
强制成本审计。 另外故意绕过“已行动就保留”的保护,只为测成本:25 处没有不同的候选,2 处完成比较并都保留基线。
| 状态 | 存活堆数 | 基线/挑战 | 总耗时 | 比较耗时 |
|---|---|---|---|---|
| fair/seed42 第 2 步 | 14 | 冰霜弩箭/普通攻击 | 3.0553 秒 | 1.9325 秒 |
| quick/seed81 第 79 步 | 10 | 移动/普通攻击 | 0.3360 秒 | 0.2170 秒 |
14 堆状态攻击后的菜单有 57 个单位目标和 257 个格子目标施法选项,共 314 个(不是 314 种法术)。候选准备和真实转移是主要成本。
失败与负结果
首轮测试 27 通过/5 失败(测试英雄缺初始属性来源、士气参数无效),修正后又有 1 例选定的士气结果没真正触发额外回合,改成真实触发的边界后全部通过。状态检查脚本首轮把元组和 JSON 列表直接比较而失败,修正后在新目录重跑。
局限
没有改选,就没有续玩胜负证据;不能从这一例外推所有英雄构筑或多样本都能达标。
结论与下一步
下一步拆解这个 14 堆法术节点的成本(见实验 0012),再扩大英雄构筑和随机分支(见实验 0011、0019)。
Comments