Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.02.2011, 10:28
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
Вопрос Поиск оптимального пути

Всем привет!
Решил забабахать свой варгейм. Пишу вообще на GMK8, но использую Дельфяшные библиотеки. И возникла такая проблема: я сталкивался с алгоритмом А' (алгоритмом поиска кратчайшего пути в двухмерном массиве), но я не могу придумать ничего подобного для поля из гексов (шестиугольников).
Гексы имеют разную цену прохождания, через некоторые проходить нельзя. При захождении на некоторые гексы идти дальше нельзя.
На выходе должны быть координаты всех гексов, через которые пройдёшь по этому маршруту, и координаты всех гексов, до которых вообще можно пройти за определённое количество шагов.
[S]Заплачу лолями и нефтью.[/s] (шутка).
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!

Последний раз редактировалось EvilRussian, 09.02.2011 в 10:35.
Ответить с цитированием
  #2  
Старый 09.02.2011, 16:11
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Как-то не приходилось мне писать код под подобное задание, но представляю я себе это так: У вас от точки старта есть шесть направлений, соответственно шесть новых узлов. Делаем рекурсивный обход всех направлений. Для каждого из направлений считаем количество ходов. По итогам определяем самое короткое. При таком подходе не имеет значение сколько у нас сторон в поле, 6 или 3
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 09.02.2011, 17:58
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Спасибо за помощь
Будем пробовать, хотя всё ещё жду предложений.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #4  
Старый 09.02.2011, 19:23
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Киньте пожалуйста кто-нибудь работающий пример алгоритма А* на Дельфи, а то гугл всякую муру выдаёт.
Заранее спасибо
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #5  
Старый 09.02.2011, 19:24
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ищем по ключевым словам "Алгоритм Дейкстры" или "Задача Дейкстры" - поиск кратчайшего пути в графе. Это то, что тебе надо. Один в один.
Ответить с цитированием
  #6  
Старый 09.02.2011, 19:42
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Поле довольно большое, точка задана точно и заранее. Есть туман войны.
Ты уверен что этот алгоритм именно то, что мне нужно? А* предназначен именно для задач моего типа.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
  #7  
Старый 09.02.2011, 20:11
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Дайте уже пример, и я буду счастлив.
Пример А*, естесственно, хотя от хорошего примера алгоритма Дейкстры тоже не откажусь.
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025