【发布时间】:2013-05-05 18:08:56
【问题描述】:
我是一名高中生,正在制作 Pacman 风格的网格世界游戏。如你所知,pacman 有鬼魂跟随 pacman 并试图抓住他。但是,我无法创建一个搜索到 Pacman 对象的最快路径然后采用该路径的算法。我在网上阅读了一些博客,但没有发现任何有用的东西。你们有什么想法让幽灵追踪背包人吗?
【问题讨论】:
标签: java algorithm pacman gridworld
我是一名高中生,正在制作 Pacman 风格的网格世界游戏。如你所知,pacman 有鬼魂跟随 pacman 并试图抓住他。但是,我无法创建一个搜索到 Pacman 对象的最快路径然后采用该路径的算法。我在网上阅读了一些博客,但没有发现任何有用的东西。你们有什么想法让幽灵追踪背包人吗?
【问题讨论】:
标签: java algorithm pacman gridworld
你可以试试A*算法as described here。
最终你会注意到鬼魂会采用几乎相同的路线。查看 AI Game Programming Wisdom 系列丛书,了解大量有用信息。
【讨论】:
啊.... Gridworld,我记得就像昨天一样。仔细想想,原来是……:|
无论如何,我唯一能想到的就是创建一个包含吃豆人所有动作的 ArrayList,将其传递给幽灵,计算到达列表中某个空间的最快路径,然后就跟着吃豆子一起走。
希望我能提供更多帮助,但我现在能想到的就这些了。
【讨论】:
在这里提供完整的答案有点复杂......但请查看“反对象”。 Alexander Repenning(科罗拉多大学)有一篇论文。这种非 OOP 建模将 pac-man 位置处理为通常被描述为类似于气味的东西。
【讨论】:
为了找到最短的成本路径,我建议实施类似 Dijkstra 算法或 Floyd 算法的方法(它的好处是成本优势为正!)
http://en.wikipedia.org/wiki/Dijkstra's_algorithm http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm
【讨论】: