我目前正在制作游戏并遇到一些问题。
我正在研究一种算法,该算法将为游戏中的AI角色创建一条路径。这是一个自上而下的冒险游戏,人工智能将在50乘50的地图上选择一个随机位置,然后采取最短路径,考虑障碍物。
我最初拥有它以便AI将使用0-3来确定如何移动。如果它是0,它们向上移动,1,向右等。现在我试图使用A *算法来创建移动列表。一旦他们到达,他们将选择一个新的目的地,并重复该过程。
我遇到的问题是存放方块。据我所知,您需要一个封闭的列表和一个打开的列表。我计划为这些使用链表,然后最终使用第三个链表来存储要遵循的路径。
问题是我需要存储x和y坐标。我想我可以为每个列表使用两个列表,但这似乎效率低下。
顺便说一下,我正在使用Java来编程。
答案 0 :(得分:1)
不是为每个坐标都有列表,而是将x和y包装成一个类。您可以使用Point课程或自己存储x和y并实施比较以帮助您进行A *搜索。您还可以查看Implementation of A Star (A*) Algorithm in Java