Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Алгоритмы _ Поиск пути (Starcraft)

Автор: Baumanec 14.05.2008 23:55

прохождение объекта по "карте" (двумерный массив(булевский)) тру=можно фолс=нельзя.
Идея пришла уже как 2 месяца назад, но внятной реализации придумать не могу, всегда нахожу ситуации где она сорвёться...
Предлагаю обсудить алгоритм прохождения объекта по "карте" (двумерный массив(булевский)).

Автор: Michael_Rybak 15.05.2008 0:06

эта задача - одна из классических.

не думаю, что тут есть особо что обсуждать. поищи (в гугле и здесь) "волновой алгоритм", "метод волны", "лабиринт поиск в ширину".

Автор: andriano 15.05.2008 0:25

Для пошаговых стратегий - да. Еще советую "алгоритм Дейкстры".
Для реалтаймовых еще советую поискать алгоритм A*.

Автор: Baumanec 15.05.2008 23:08

Ну как в старике устроенно это просто, там как бы наложение ландшафта, а потом при столкновении с юнитами уже меньше обсчитывать...

Автор: Baumanec 16.05.2008 0:01

Или я вообще ничего не понимаю, но в первом же выпавшем алгоритме ошибка...
http://www.codenet.ru/progr/alg/way.php
Или я не прав...
А так принцип ясен, я совершенно в другую сторону думал...

Автор: andriano 16.05.2008 2:36

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

Автор: Baumanec 16.05.2008 21:42

Там он волну запускает от старта, и собирает тоже...
А как экономней сделать, это ясно...

Автор: andriano 16.05.2008 23:56

Почему от старта?
Там конечной точке присваивается 0, а потом ищутся точки, совпадающие со счетчиком, начальное значение которого тоже 0, т.е. ищется, как и положено от конца к началу.

Автор: Baumanec 19.05.2008 3:03

Блин действительно, чё-то я не разглядел, 3 раза читал, сам понял как делать, а казалось что тут ошибка, но после пяти раз я уже сам додумал.