摘要

实验 0333 修复了“防御为负且分母非零”的伤害计算异常,但留下一个边界:Simulator(本项目的战斗规则引擎)的聚合伤害公式分母是“防御 + 20”,防御恰为 −20 时分母为零。本实验是一次有限的“准入检查”:如果正常规则根本到不了 −20,就可以放行原来的整局训练;如果到得了,就不能放行。结果:用受支持的初态和 15 次合法操作就到达了防御 −20,下一次合法攻击抛错。准入未通过,没有开始新的 CEM 训练。

后续更正:在随后一轮中取得了当前安装版“最终攻防下限为 0”的证据,用户已批准合入共享取值修复。本文描述的是修复前的状态,原始负来源仍保存。

要回答的问题

防御 −20 是否在正常构造与合法动作下可达?若可达,商业游戏在零分母时如何结算?

方法与设置

  • 用正常构造函数建立受支持的初态:种子 920001,蓝方升级凤凰,红方侍从(基础防御 4);蓝方英雄咒力 32、暗影缩减熟练度 2,双方士气 −1,蓝方先攻 +100,无障碍,最多 20 回合。这是有针对性的初态,不是正常随机选秀分布。
  • 第 1 回合施法,之后合法移动和跳过;不直接编辑攻防、状态或回合号。
  • 独立脚本重新调用同一构造器,逐字段比较初态,逐步确认动作在合法菜单中,事件与状态完全回放相等。

结果

  • 15 次转移后到达第 8 回合,叠层使红方防御为 4 − 24 = −20。
  • 合法菜单中有一个普通攻击,执行后抛出“聚合伤害攻防投影无效”。故障可稳定复现。
  • 原训练中防御 −21 的 434 步故障再次精确回放,原失败攻击修后成功且重复执行确定。没有续玩或回填旧训练结果。

当前安装版的证据边界

安装身份 0.81.04 / build25672315。完整的单位属性百分比烘焙函数把有符号整数防御转为单精度浮点、乘以“1 + 防御百分比”再截断回整数,片段中没有截零步骤。但这只说明这一个函数;不能排除调用前后另有规范化,也不能仅凭浮点除零推断整条伤害路径的结果。因此当时没有获得权威的 −20 伤害结果。

失败与负结果

  • 准入门槛未通过:故障在合法路径上可达,不能以“可能不可达”为由放行训练。
  • 没有用截零、填 1 点伤害、过滤法术或丢弃坏来源来“修好”,也不把异常算成平局或优化标签。
  • 整理诊断脚本时修正了根目录导入和两处数据字段/序列化错误,这些是脚本错误,不计为引擎故障或通过的验证。

局限

商业游戏的完整属性构造与零分母语义当时未认证。18 个策略参数、原 24/8/16 个来源(来源指交换双方阵营的一对对局)和旧失败批次继续冻结;CEM 仍为 0 代更新,新增回放不是棋力证据。

结论与下一步

决定进行一次最多 90 分钟的取证,只追相关属性路径和零分母后的处理;证据足够则做最小修复并从第一代重训,旧 28 局不拼入;不足则记为不支持的规则边界,改立对称受限的研究环境。后续取证得到了最终攻防 0 下限的证据并完成修复。