2012-06-10 2 views
1

В настоящее время я работаю над игрой и столкнулся с проблемой.Хранение узла Coorinates для AI Paths

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

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

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

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

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

ответ

1

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