我努力实现一个好的追逐者。我有一个需要追逐冰球的曲棍球运动员。我可以预测下一个球员和冰球位置。我试图使用转向行为,但未能找到冰球靠近的情况下的良好预测器(想象一下例如冰球几乎以高速向头部方向移动。当冰球稍微离开时,玩家只需转角一点然而,当冰球越来越近而且它只是错过了球员时,最后两到三个刻度,球员需要转动更大的角度才能看到冰球。当转向角度有限时,冰球逃跑并且玩家无法做任何事情。如果它开始转动,那就没关系,但是当我预测更多的步数时,玩家倾向于开始转向远远落后于他的冰球位置......)。然后我打算用*搜索。当冰球在前方并且冰球速度低于球员的速度时,效果很好。然而,当冰球速度更大时,它就成了一个逃避目标。因此,每当a *扩展一个新状态时,它往往会回顾并发现在之前的状态中,冰球更靠近玩家(冰球逃脱!),所以它更喜欢先前的状态并成为bfs。 所以我猜这是一个众所周知的解决方案,但我没有谷歌任何东西,所以也许社区会帮助我。提前谢谢!
更新:所以基本上我认为我重新发明了轮子。我现在正在做的是我在冰球位置上进行迭代。当我点击可以使用相同数量的刻度到达的第一个位置时,我宣布胜利。这是非常昂贵的资源,但我无法想出更好的东西。
答案 0 :(得分:1)
关于行为的部分目前很难理解但关于A*
问题我认为你的问题是因为你的代理人(玩家)在动态环境中运作你必须重新计算启发式每个扩展步骤,因为当然,自从冰球移动以来,前端状态的h
值已经过时。我有没有明白你的问题是什么?
好奇心,你使用什么样的启发式?