Pacman的寻路算法

时间:2010-04-08 22:59:30

标签: path-finding pacman

我想实施Pacman游戏。对于人工智能,我正在考虑使用A *算法,在很多论坛上看过它。然而,我实现了广度优先搜索的一些简单的寻路(从点a到点b,其间有一定的障碍),并发现它始终给出了最佳路径。我想这可能是因为在像pacman这样使用简单寻路的游戏中,图中没有成本概念。那么,如果我在Pacman中使用BFS而不是A *进行寻路,那会没关系吗?

6 个答案:

答案 0 :(得分:23)

这取决于,你真的想让幽灵像他们在吃豆人一样工作吗?

Here's a description of how the ghosts' chase AI works(他们各自的工作方式不同)。请务必阅读上面的章节,了解他们实际上是如何尝试访问target tile的。该页面对Pac-Man进行了非常深入的分析,有趣的阅读。

答案 1 :(得分:16)

对于路径寻找,请注意以下内容

如果您正在谈论幽灵AI,请查看Chad提到的页面:The Pac-Man Dossier - 幽灵实际上只是在确定如何将它放到目标图块时使用欧氏距离,这使得它们非常糟糕在某些情况下找到Pac Man。

答案 2 :(得分:4)

这取决于。 BFS既完整又优化(从某种意义上说,它找到了最佳解决方案)

缺点?可能需要很长很长时间才能找到它!此外,根据问题的分支因素,您可能会快速耗尽内存。

如果您没有性能问题,请保留BFS,但如果您想在巨大的迷宫中尝试,那么可能需要一段时间才能获得解决方案。

我建议你试试A *,最好的搜索策略恕我直言。即使你没有BFS问题,A *也是一个很好的算法,你会学到很多很酷的东西。

答案 3 :(得分:3)

您可能想要考虑Pacman的原始设计师使用的反对象方法,您可以阅读herehere

然而,要回答你的问题,请使用有效的方法!如果您从BFS获得了良好的结果,请使用它。只要记住抽象出足够的路径,你可以在以后找到更好的东西时替换它。

祝你好运!

答案 4 :(得分:1)

如果没有使用边缘权重,BFS将始终给出最短路径。如果您不需要边缘权重,我会使用它。您可以随时切换。

答案 5 :(得分:0)

相关问题,可能会回答您的问题:Path finding in a Java 2d Game?