Алгоритм движения на карте шестиугольника - PullRequest
0 голосов
/ 25 июля 2011

У меня есть проблема на этом сайте: http://www.dark -project.cz / wesnoth / map-view / 1 (нажмите на блок). В моем источнике Javascript http://www.dark -project.cz / wesnoth / js / map / base.js (последняя $('div.unitImg').click(function() функция) я хочу отметить все шестиугольники, в которые юнит не может попасть. 1008 *

У меня довольно сложный алгоритм, который работает правильно, когда движение равно 1, но если оно выше, оно не работает (попробуйте движение 2).

У вас есть представление об алгоритме для поиска правильных гексов?

Вот пример нумерации координат: http://www.dark -project.cz / wesnoth / coor.png

Спасибо за все ответы.

1 Ответ

3 голосов
/ 25 июля 2011

Сначала я предлагаю вам изменить координаты.Хороший пример приведен в этом вопросе .

Но независимо от системы координат, я предполагаю, что в будущем у вас все равно будут какие-то препятствия на поле (некоторые камни, драконы и т. Д.)так что вы должны разработать общий алгоритм, подготовленный для этого.Я бы посоветовал исследовать BFS , но вам не нужно явно строить график, просто когда вам нужны ребра, вы знаете, какие соседние шестиугольники у вас на поле (работает один глубинный)и пройти туда.Это общий подход.Также есть DFS, но BFS часто считается более эффективной для проблем достижимости, когда количество смежных ребер довольно ограничено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...