摘要

战斗记录 App 能读出法术书书页上的法术和等级,但此前从来没有把一本书绑定到“我方”或“敌方”:感知模块的书页归属代码里,三张标记支持表都是空的,状态估计(SE,把读到的观察累积成对局状态和对手构筑推断的模块)也明确不用任何书页标记猜归属。结果是:当准备页没有读全法术时,“我的信息”里的魔法栏一直是空的,尽管书已经读到了。

本实验发现一条简单可靠的证据:打开的法术书左上角印着书主人的当前魔力(例如“250/250”),而战斗画面左右两侧的英雄界面(HUD)也各自显示一方英雄的魔力。只要书上的数字恰好只和一侧相同,就能确定这本书属于那一侧的英雄。在全部 252 张法术书截图上验证后接入了生产代码。

要回答的问题

能否只靠同一张截图里的数字,确定一本打开的法术书属于哪一方?证据不唯一时能否老实地保持未知?

数据与来源

  • 截图包中全部 252 张法术书画面,只读。
  • “我方在哪一侧”由 App 已有的、审核过的头像线索确定。

方法

  1. 读法术书左上角的魔力数字。
  2. 读同一张图左右两侧英雄界面的魔力。
  3. 如果书上的魔力只与一侧相同,就给出指向那一侧英雄的标记;两侧相同则标“归属不明”;书上读不到则标“没有可见归属标记”;读取器出错单独标出。没有识别器或界面读数时,结果与原来完全相同。
  4. 规则不假设“只能打开自己的书”,只在证据唯一时才判定。

接入:

  • 感知侧新增一种书页线索;截图路由器把本图战场任务的英雄界面魔力和共享的文字识别器传给它。
  • SE 只认这一种书页线索,再用同一张图的头像线索判断那位英雄是我方还是敌方,依据记为“同一截图的书上魔力”;用户手动指定的范围仍然优先,其它书页标记仍按“未审核”处理。归到某一方的书进入该英雄的法术书组。SE 和 App 的严格校验只对这一算法产生的法术书标记放行。
  • App:准备页一个法术都没读到时,总览的魔法改用我方法术书组里的法术(只用于显示,修正在“魔法”页进行)。

设置

验证是对已保存截图的只读统计;端到端效果用一局已保存的时序文件夹回放检查。

结果

情况 张数
法术书画面 252
书上魔力读出 248
只有一侧界面与书上相同,且我方一侧已知 241
其中那一侧是我方 241
两侧魔力相同(无法判定) 4

录像里从未出现对方的法术书,所以 241 张全部指向我方是符合预期的,但这也意味着“判定为敌方”的情形没有真实样本检验。

端到端回放(一局时序文件夹):两张法术书中,一张书上 199、与右侧(我方)界面相同,归为我方;另一张两侧都是 250,保持未知。“我的信息”中的魔法从“候选 0 / 未知 10”变为 11 个法术和等级,与截图上的书页逐个一致。

失败与负结果

没有发现错误归属。需要注意的是:241/241 的一致性来自“录像里只有我方打开法术书”这一事实,不能当作区分敌我书的准确率。

局限

  • 两侧魔力相同时无法判定。
  • 每次只能看到书的一页。
  • 如果法术书在对方回合打开、且双方魔力相同,仍需要别的证据。

结论与下一步

“书上印的魔力只与一侧英雄相同”是一条简单、可解释、在证据不足时会主动放弃的归属规则,已经让此前读到却无处安放的法术书内容进入了“我的信息”。后续若出现对方的法术书画面,应专门检验判定为敌方的情形。