Конференция "Игры" » A* на гексагональной карте [Delphi, Windows]
 
  • Xandr001 (07.05.10 08:30) [0]
    Кому нибудь встречались реализации? Буду благодарен за любую помощ!
  • brother © (07.05.10 08:43) [1]
    уточни вопрос...
  • Xandr001 (07.05.10 10:08) [2]
    Все реализации этого алгоритма  которые я встречал работают с 8 выходами из клетки. Мне нужно 6 выходов. Т.е. Тайлы у меня шестигранные
  • @!!ex © (07.05.10 10:16) [3]
    A*?
  • Xandr001 (07.05.10 10:21) [4]
    Ну да. Алгоритм поиска пути еще называют астар
  • Xandr001 (07.05.10 10:56) [5]
    Или а со звездой
  • @!!ex © (07.05.10 10:57) [6]
    Вот так и надо писать. :)
    Почему именно этот алгоритм?
    Чем не нравится алгоритм Дейкстры или волновой?
    Астар ИМХО довольно медленный..
  • Xandr001 (07.05.10 11:56) [7]
    Можно и другой, но желательно именно этот
  • @!!ex © (07.05.10 12:16) [8]
    Так. А в чем проблема-то?
    От того что граней только 6 алгоритм вообще не меняется.
  • Xandr001 (07.05.10 18:48) [9]
    Меняется. В зависимости от ориентации гекса 2 направления исключаются из алгоритма... Посмотрите любую карту из гексов.
  • @!!ex © (07.05.10 20:07) [10]
    Алгоритм никак не завязан на количество граней, насколько я его понимаю.
  • V@s_!s_D@s © (08.05.10 17:05) [11]
    1 Зачем тебе?
    2 Думаю лучше написать самому - прооще и понятнее
  • Xandr001 (08.05.10 22:50) [12]
    @!!ex files.mail.ru/JE6DTP файл A-Star.jpg
    Посмотрите сразу станет понятно о чем я.

    V@s_!s_D@s
    1. Пишу логическую игрушки на зачет
    2. Может быть. Просто думал может уже есть где-то...
  • @!!ex © (08.05.10 23:34) [13]
    > [12] Xandr001   (08.05.10 22:50)

    Прочитай еще раз [10] и объясни в чем разница между реализацией этого алгоритма для 8 граней и 6?
  • V@s_!s_D@s © (09.05.10 01:58) [14]
    короче плюнь на этот алгоритм,
    пиши так:
    имеем обычный массив там [1..45,1..34].
    из каждой строчки ячейки номер а, мы попадаем в соседнюю строчку в ячейку номер б=а+1 и номер а, тоесть внутри это обычная матрица, а каждому 6 - угольнику каждой строчки присваивай номер соседней строчки со сдвигом на + - 1 шестиугольник.
  • V@s_!s_D@s © (09.05.10 02:12) [15]
    То есть мы превращаем задачу в обычную квадратную, но наискосок можно двигатся лиш в одном направлении а не в двух
  • ujcnm (09.05.10 07:42) [16]
    @!!ex
    Ну да. Дело в другом.
    Я спрашивал о том, встречал кто-нибудь готовое или нет. Чтобы вот так взять и пользоваться, а не копаться в коде, или писать свой. Суть работы не в этом алгоритме, а совсем в другом. Так что не хотелось бы заморачиваться с такой задачей.
    Если нет готового, конечно буду писать сам. Информации в тырнете для этого более чем достаточно.

    V@s_!s_D@s
    Да не. Это же тоже обычный квадратный массив, координаты там тоже вполне понятные, разница с квадратными тайлами только в том, что каждый нечетный столбец выводится с поправкой y:=y+(TileHeight div 2).
  • Xandr001 (09.05.10 07:43) [17]
    Сверху это я. Видимо что-то с куки.
  • @!!ex © (09.05.10 07:58) [18]
    > [16] ujcnm   (09.05.10 07:42)
    > Чтобы вот так взять и пользоваться

    Аааа. Ну так сразу и надо было говорить.
  • Xandr001 (09.05.10 15:46) [19]
    Ну вроде как про то и спрашивал.
  • @!!ex © (09.05.10 20:05) [20]
    Здесь редко готовый код дают. Разве что задача действительно сложная и уже есть решение.
    Можем только помочь решить какие-то проблемы.
  • Xandr001 (10.05.10 08:01) [21]
    Понятно.
    Спасибо за потраченное время, в любом случае!
 
Конференция "Игры" » A* на гексагональной карте [Delphi, Windows]
Есть новые Нет новых   [118629   +19][b:0][p:0.001]