标题:
【寻路算法】原版曹操传《袁术讨伐战》吕布按兵不动之谜
[打印本页]
作者:
贝莉卡
时间:
2026-4-9 20:34
标题:
【寻路算法】原版曹操传《袁术讨伐战》吕布按兵不动之谜
打袁术讨伐战时,大家应该都有一个深刻印象,就是吕布一开始总是站在原地不动,到了后半程才终于开始动。而且有时候即使动了,走的路线也很诡异。
最开始以为吕布的AI方针就是被动出击,甚至以为这是为了表现吕布蛇鼠两端。但是看过剧本就知道,吕布的AI方针就是主动出击,那么他究竟为什么不动呢?
核心原因是,吕布会斜向攻击。
这就要说到主动出击型AI的大致算法:
首先检索有没有移动一次之后直接就能攻击的目标/使用策略的目标。
如果有,那么计算各种行动方式的价值,选择其中最大的一个去行动。
如果没有,再检索最近目标,所谓最近目标,是指消耗最少移动力即可攻击到的目标(不考虑策略)。
锁定目标后,向着目标移动。
在这里,吕布显然是无法移动一次后直接打到人的,所以进入下一步,检索最近目标。
那么问题来了,吕布的最近目标是谁?按照直观理解,他的最近目标显然是序号③的步兵。但并不是这样的,刚才说过,最近目标的定义是消耗最少移动力即可攻击到的目标。吕布会斜向攻击,在这个算法里,②③④离他是一样近的。然后,在这三个目标中,他会锁定哪一个呢?答案是序号④的弓兵,因为弓兵是软柿子。
下一步,吕布要向着弓兵去移动了,这时候出问题了。因为是“向着目标移动”,而不是“向着能攻击到目标的位置移动”,吕布和弓兵之间是没有路线的,于是就不动了。
吕布会斜向攻击,结果不动,他带的两个贼兵也都会斜向攻击,所以也不动。
其他友军,刘关张三兄弟、孙坚和两个骑兵,都是不会斜向攻击的,所以都会动。
那么吕布什么时候会开始动呢?
第一种情况是,我军杀到西门附近,西门敌军的阵型开始发生变化,吕布重新锁定目标,开始出击,表现比较正常。
第二种情况是,孙坚把南门杀开一个缺口,吕布发现他和弓兵之间有路线了,这个路线就是从南门绕行,于是吕布开始往南门方向走,虽然也是动了,但是表现上仍然很诡异。
图片附件:
无标题.png
(2026-4-9 20:34, 222.09 K) / 该附件被下载次数 1
http://xycq.org.cn/forum/attachment.php?aid=151889
作者:
住持方丈
时间:
2026-4-10 21:59
好厉害,原来如此. . .
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0