摘要
游戏的法术书页上,每个法术显示等级和施法费用。读取器把这些读成字段;SE(状态估计)把一局里的多次读取累积起来。在一份 58 帧的真实训练保存输入中,第 9 帧读到“力量之歌”4 级,第 10 帧这个等级没读出来(未知),第 51 帧又直接读到 4 级。旧行为是第 10 帧只显示“未知”,完全不提此前已经读到过。
本实验在不改变当前观察值的前提下,给第 10 帧加了一条条件说明:“此前帧保存的等级候选为 4(来自第 9 帧原图),若期间未变化”。它只是说明,不是预测,不写回当前等级,也不进入费用模型。前后对照显示:只有第 10 帧前缀多出这一条说明(及对应显示文字),删掉它之后与修改前完全相等。
要回答的问题
能否在保持“当前未知”的同时,把同一英雄、同一法术此前读到的等级作为有来源的条件信息展示出来,而不污染任何其他推断?
数据与来源
- 只复用一份已保存的 58 帧真实训练输入(一个已曝光训练来源),保留第 10 帧原自动的“未知”,不用人工值制造失败。
- 第 9 帧和第 10 帧都有同帧的“法术书页 → 英雄”关联、玩家头像归属和相同英雄编号。
- 用前 9/10/51/58 帧分别调用实际 App 的 SE 公共入口。不读新图片、视频或冻结材料。
方法
- 关联条件:只在请求内的既有观察顺序中,且当前帧的归属校验已通过时,把同一英雄、同一阵营、同一法术标准编号的此前读数关联起来。不按名称或槽位匹配,不使用未来帧。
- 屏障:未知或冲突的书页、明确更换英雄、重复身份,都会切断历史衔接。普通的“未开书页”战场间隔不算屏障。
- 输出:在现有“推断”列表中追加一条 prediction=false、等级上限为“不确定”的说明,记录来源帧和原图;当前观察、费用模型、攻击条件、技能排除等全部不变。
设置
不安装 App,不改规则模拟器、对战 AI 或严格数据格式;Qt 界面只做离屏检查。
结果
| 原保存前缀 | 修改前 | 修改后 |
|---|---|---|
| 9 帧 | 力量之歌 4 级、费用 4,目录参考 6 | 整个返回不变 |
| 10 帧 | 当前等级未知、费用 6,目录参考未知;无历史说明 | 新增 1 条历史条件说明及 1 条显示文字;当前值与费用模型不变 |
| 51 帧 | 再次直接读到 4 级、费用 6 | 整个返回不变 |
| 58 帧 | 最新来源第 54 帧:4 级、费用 8 | 整个返回不变,没有回填第 10 帧 |
从第 10 帧结果中删除这条新说明和对应文字后,与修改前的完整返回严格相等:观察、费用计数、所有原推断、攻击条件、技能排除和原文本都保持。App 的推断说明面板和保存的 HTML 回看都能显示这条说明和原来源(离屏截图已目视中文可读)。
性能:新私有函数在 10 帧上 0.31–0.55 毫秒、58 帧上 3.66–4.05 毫秒(各 5 次,只测这个函数,不是整帧时延)。
失败与负结果
- 新增的 34 个软件场景中,前 3 个正例在原实现上失败(符合预期);初次实现又被追加的“普通未开书页的战场间隔”测试捕获(1 失败 / 26 通过),区分“未开书页”与“归属冲突”后修复。
- 新功能在兼容旧的最小 HUD 数据时触发了一次缺字段错误,失败记录保留;只要求历史分支具备当前 HUD 标记后修复,旧入口行为不变。
- 第一次离屏截图里中文显示成方块(字符串校验已过、像素可读性没过);测试环境显式加载系统字体后第二次通过。这是测试环境处理,不是安装版字体修复。
- 外部审阅指出:人工更正过的读数在会话中也会成为“候选”,而 SE 请求不携带更正来源。因此显示措辞从“直接读到”改为“此前帧保存的等级候选”,并提示核对原会话更正。
局限
- 只有一个已曝光训练来源的固定保存观察,不是独立准确率,也没有新的游戏真值。
- 只对有原生归属线索的我方书页提供说明;未知主人、敌方书页、模拟器数据流不自动套用。两端书页的标记和头像支持的是候选归属,不是整个间隔的认证状态。
- SE 172 项、App 81 项(共 253 个不同软件节点)通过,只说明行为。
结论与下一步
“此前读到”与“当前未知”可以安全共存:历史值作为有来源的条件说明出现,不覆盖当前观察,也不影响任何其他推断。外部审阅支持保留并提交。下一步只建议在已合法关联的历史等级基础上,对已有两次显示的费用做有来源的条件比较,先核实公开规则和目录的适用语义,不写回当前等级、正式费用模型或技能排除。
Comments