我正在尝试为一个类似精灵宝可梦的游戏写一个AI,除了所有的动作都是两个玩家事先知道的(所有的东西对两个玩家都是可见的)。我已经记录了我需要的所有信息,如损坏、准确性、关键机会等。
我认为我的目标应该是一个似乎合理的Expectiminimax (已知算法)解决方案,但我遇到了一个障碍:如何处理谁先走的顺序。当然,这是基于当前玩家的速度和谁更快开始,但一些行动获得优先,并最终走在第一,尽管他们的速度。
举个例子,我的对手速度更快,他使用了一个非常强的能力,但我使用了一个优先的阻挡,完全否定了他的能力。我不能再假装他先走了,因为我的举动会抵消他的出局。
也许我只是想多了,但当我试图在纸上写出我的Expectiminimax时,这就成了一个真正的问题。
发布于 2013-10-28 20:57:55
同时移动的最简单的解决方案是假装你先走,即所谓的偏执假设(因为你假装你的对手可以读懂你的心思,知道你会走什么步)。您可以通过计算特定于玩家的博弈树,为每个玩家独立地做出偏执的假设。如果你想了解更多最先进的技术,我在谷歌上搜索了这些论文:Using Counterfactual Regret Minimization to Create Competitive Multiplayer Poker Agents,Comparing Uppper-Confidence-Tree versus CounterFactual-Rergret in Simultaneous Games。
https://stackoverflow.com/questions/19628971
复制相似问题