【发布时间】:2011-02-05 22:28:40
【问题描述】:
我想实现游戏吃豆人。对于 AI,我正在考虑使用 A* 算法,在许多论坛上都看到过。但是,我为一些简单的寻路(从 a 点到 b 点,中间有某些障碍物)实施了广度优先搜索,并发现它总是给出最佳路径。我想这可能是因为在像吃豆人这样使用简单寻路的游戏中,图表中没有成本的概念。那么,如果我在 Pacman 中使用 BFS 而不是 A* 进行寻路可以吗?
【问题讨论】:
标签: path-finding pacman
我想实现游戏吃豆人。对于 AI,我正在考虑使用 A* 算法,在许多论坛上都看到过。但是,我为一些简单的寻路(从 a 点到 b 点,中间有某些障碍物)实施了广度优先搜索,并发现它总是给出最佳路径。我想这可能是因为在像吃豆人这样使用简单寻路的游戏中,图表中没有成本的概念。那么,如果我在 Pacman 中使用 BFS 而不是 A* 进行寻路可以吗?
【问题讨论】:
标签: path-finding pacman
这取决于,你真的想让幽灵像在吃豆人中那样工作吗?
Here's a description of how the ghosts' chase AI works(它们各自的工作方式不同)。请务必阅读以上章节,了解他们如何实际尝试访问他们的target tile。该页面是对吃豆人的精彩深入分析,读起来很有趣。
【讨论】:
关于寻路,请注意以下事项
如果您在谈论幽灵 AI,请查看 Chad 提到的页面:The Pac-Man Dossier - 在确定如何到达目标图块时,幽灵实际上只是使用欧几里德距离,这使得它们非常不擅长寻找在某些情况下吃豆人。
【讨论】:
这取决于。 BFS 既完整又最优(从某种意义上说,它找到了最优解)
缺点?可能需要很长时间才能找到它!此外,根据问题的影响因素,您可能会很快耗尽内存。
如果你没有性能问题,那就保留 BFS,但如果你想在一个巨大的迷宫中尝试它,那么可能需要一段时间才能得到解决方案。
我建议您尝试 A*,恕我直言,这是最好的搜索策略。即使 BFS 没有问题,A* 也是一个很好的算法,你会学到很多很酷的东西。
【讨论】:
如果不使用边权重,BFS 将始终给出最短路径。如果您不需要边缘权重,我会使用它。以后随时可以切换。
【讨论】:
相关问题,大概回答了你的问题:Path finding in a Java 2d Game?
【讨论】: