Хранение координат узлов для путей ИИ

Сейчас я работаю над игрой и столкнулся с небольшой проблемой.

Я работаю над алгоритмом, который создаст путь, по которому ИИ-персонажи будут следовать в игре. Это приключенческая игра с видом сверху, и ИИ выберет случайное место на карте 50 на 50, а затем выберет кратчайший путь, принимая во внимание препятствия.

Изначально у меня было так, что ИИ будет использовать 0-3, чтобы определить, как двигаться. Если это 0, они перемещаются вверх, 1, вправо и т. д. Теперь я пытаюсь использовать алгоритм A * для создания списка ходов. Как только они прибудут, они выберут новый пункт назначения, и процесс повторится.

У меня проблема с хранением квадратов. Насколько я понимаю, вам нужен закрытый список и открытый список. Я планировал использовать для них связанные списки, а затем, в конечном итоге, использовать третий связанный список, в котором хранится путь, по которому нужно следовать.

Проблема в том, что мне нужно хранить координаты x и y. Я думал, что могу просто использовать два списка для каждого, но это кажется неэффективным.

Кстати, я использую Java для программирования.


person Grimey    schedule 10.06.2012    source источник


Ответы (1)


Вместо того, чтобы иметь списки для каждой координаты, просто оберните свои x и y в класс. Вы можете использовать класс Point. или сделайте свое собственное хранение x и y и осуществите сравнение, чтобы помочь с вашим поиском A *. Вы также можете ознакомиться с Реализация алгоритма A Star (A*) на Java

person n00begon    schedule 10.06.2012