摘要

Arena 模式开战前要轮流选秀:从几个候选兵种、宝物等里挑一个加入自己的军队。选秀时看不到对手的英雄、技能和法术书,所以 AI 只能对“未知对手可能是法师”做保守准备。本实验给选兵评分加了一项“通用抗法术覆盖”:第一种能免疫魔法伤害的兵种最多加 3 分,第二种最多加 1.5 分,之后不再加。实现、版本兼容与回归都通过;固定种子的实际选秀中,新评分在一处把天使换成了“无思索斯”(一种魔法免疫兵种)。是否因此多赢,留给实验 0105 的成对筛查。

要回答的问题

能否在不读取任何敌方信息的前提下,让选兵偏好一两种抗法术兵种,同时不压过数量、攻击、阵营、速度等原有考虑?

方法

  • 两种选秀策略(启发式选秀 Heuristic,以及会考虑重掷候选的 ProbabilityAwareReroll)共用同一个覆盖函数。重复补同一兵种不占新名额;这只是加分,不强制选两个。3 和 1.5 是待评测的权重。
  • 判断一个兵种是否抗法术,不读游戏文本,而是用 Simulator 公开接口建一个“无英雄、两侧同兵种”的初始探针,查询其固有免疫和魔法受伤修正;不运行战斗,不读随机状态。
  • 完全免疫魔法伤害给满分,负的通用魔法受伤修正给部分分。只对凤凰、麒麟这类“免疫特定法术”的兵种不算通用免疫;查不到的兵种标记为未知,不当作零。
  • 探针结果按兵种缓存,不新增进程或后台服务。

设置与验证

策略版本升为 draft-heuristic.v16 和 draft-probability-reroll.v13,保存格式不变。选兵、重掷与公平边界专项 53 项通过(16.91 秒)。扩大回归 307 项通过、12 项出错,原因都是旧的自对战读取器只接受当前策略身份;补上对上一版身份的读取兼容后,相关 59 项全通过(69.93 秒)。

结果

种子 42 中,某英雄已选狮鹫和弩兵,面对吸血鬼、天使、无思索斯三个选项:去掉新覆盖项的原评分选天使,新评分选无思索斯,动作合法,整局选秀可重放。对种子 7/17/42/99 的诊断只在这一处发现选择变化。这只是同一状态下的评分对比,不是新旧策略的独立对战。

失败与负结果

扩大回归首轮的 12 个错误是旧策略身份不被接受,已修复并保留报告;没有因此重标历史结果或放行未知身份。

局限

  • 目前探针发现的正覆盖只有“魔法免疫”;商业游戏里的百分比魔抗是否都已实现并未证明。
  • 魔法伤害免疫不等于免疫控制类法术。
  • 选秀阶段公开哪些敌方线索尚未定义,当前接口没有这类字段。

结论与下一步

新评分已接入并会实际改变选兵;收益要靠成对对战检验,第一批结果见实验 0105。