A.I.可以导航随机生成的2D城市

时间:2012-01-22 21:43:41

标签: algorithm artificial-intelligence 2d path-finding

我正在编写一个iOS游戏(使用UIView),它有一个随机生成的2D城市。 我需要攻击A.I.,这将采取一条智能路径来找到玩家(不与建筑物发生碰撞)。 有人可以指出我正确的方向,我会用什么样的算法来实现这个目标?

编辑:我决定使用A *。我将在地图上创建一个网格,测试每个网格交叉点,如果该点位于建筑物内,我将使该点无效。攻击A.I.然后玩家将从当前位置移动到更接近其目标的有效网格点(在其位置的某个半径范围内)。

2 个答案:

答案 0 :(得分:7)

您正在寻找一类名为pathfinding algorithms的算法。您可以使用许多方法。

这里的经典算法是Dijkstra's algorithmA* search,可以沿最佳路径将对象从一个位置引导到另一个位置。这些算法的工作原理是将2D世界建模为graph,然后找到从该对象的起始位置到该图中目标位置的最短路径。这两种算法广泛用于AI和寻路,我强烈建议花时间阅读更多关于它们的内容。如果您愿意,可在线提供solid tutorial on A* search

如果您有许多不同的对象需要移动到目标而不会干扰,您可能需要查看潜在的字段,这为一个简单而灵活的框架提供了让多个对象接近目标的方法。这种方法由the Berkeley "Overmind" StarCraft AI使用,通常用于机器人运动规划。直观地说,这种方法的工作原理是为每个位置分配一个“潜在”值,然后使对象保持从高电位移动到低电位直到它们到达目标。这种方法对于正确的方法来说有点棘手,但一旦它起作用,它往往会导致灵活,可定制的AI,其行为智能化。

希望这有帮助!

答案 1 :(得分:2)

这里的问题:Pacman: how do the eyes find their way back to the monster hole?是一个很好的调查,用于搜索移动玩家的随机2D网格的AI导航方法。普遍的共识(以及Pacman使用的方法)不是担心在AI中烘焙智能寻路算法,而是使用地图本身来存储关于玩家位置的信息。这是一个引人入胜的读物,尤其是ammoQ和Dan Vinton的第二和第三个答案(及其外部链接)。

此处的链接Pacman scent antiobject pattern描述了一种廉价而有效的方法。