Advance Wars — показать доступные пробелы

#java #libgdx

#java #libgdx

Вопрос:

Я пытаюсь воссоздать игру Nintendo Advance Wars для школьного проекта. У меня есть основы игры, однако я недоволен тем, как я перемещаю свои юниты. У всех юнитов есть диапазон, который они могут перемещать, например, пехота может перемещаться на 5 пробелов. В настоящее время я перемещаю объекты, просматривая все пробелы в алмазной формации в пределах их диапазона, однако это не учитывает возможность того, что объекты блокируют их путь к пространству.

Например, в текущем методе. Пространство в крайнем левом углу не должно быть доступно.

Как бы я выделил доступные пробелы, не показывая пробелы, заблокированные препятствиями.

Любые примеры или помощь будут оценены.

Комментарии:

1. непонятно, о чем вы спрашиваете. что вы пробовали до сих пор? покажите нам какой-нибудь код!

2. Рассматривали ли вы возможность использования простого DFS / BFS? Должно быть достаточно для описанного вами варианта использования.

3. Вы могли бы создать двунаправленный граф, где узлы представляют собой плитки, а ребра — стоимость перемещения между плитками для этого блока. Начните с местоположения объекта и выполняйте DFS / BFS до тех пор, пока оставшееся движение не станет равным 0, а узлы, которые вы достигли, — это плитки, на которые вы можете перейти

4. Посмотрите алгоритм заполнения потоком. Вероятно, его можно было бы адаптировать для работы с этим.

5. @Tenfour04 я использовал алгоритм заливки потоком, и он отлично сработал, спасибо