1

我目前正在开发一款游戏,但遇到了一些问题。

我正在研究一种算法,该算法将为游戏中的 AI 角色创建一条路径。这是一款自上而下的冒险游戏,AI 会在 50 x 50 的地图上选择一个随机位置,然后在考虑障碍物的情况下选择最短路径。

我最初有它是为了让 AI 使用 0-3 来确定如何移动。如果它是 0,它们向上移动,1,向右等。现在我正在尝试使用 A* 算法来创建移动列表。一旦他们到达,他们将选择一个新的目的地,这个过程将重复。

我遇到的问题是存储正方形。据我了解,您需要一个封闭列表和一个开放列表。我计划为这些使用链表,然后最终使用第三个链表来存储要遵循的路径。

问题是我需要同时存储 x 和 ay 坐标。我以为我可以为每个列表使用两个列表,但这似乎效率低下。

顺便说一句,我正在使用Java对其进行编程。

4

1 回答 1

1

无需为每个坐标设置列表,只需将 x 和 y 包装到一个类中。您可以使用Point类或自己存储 x 和 y 并实施比较以帮助您进行 A* 搜索。您还可以查看Implementation of A Star (A*) Algorithm in Java

于 2012-06-10T22:32:45.293 回答