Поиск пути (Starcraft) |
Поиск пути (Starcraft) |
Baumanec |
14.05.2008 19:55
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
прохождение объекта по "карте" (двумерный массив(булевский)) тру=можно фолс=нельзя.
Идея пришла уже как 2 месяца назад, но внятной реализации придумать не могу, всегда нахожу ситуации где она сорвёться... Предлагаю обсудить алгоритм прохождения объекта по "карте" (двумерный массив(булевский)). |
Michael_Rybak |
14.05.2008 20:06
Сообщение
#2
|
Michael_Rybak Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
эта задача - одна из классических.
не думаю, что тут есть особо что обсуждать. поищи (в гугле и здесь) "волновой алгоритм", "метод волны", "лабиринт поиск в ширину". |
andriano |
14.05.2008 20:25
Сообщение
#3
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Для пошаговых стратегий - да. Еще советую "алгоритм Дейкстры".
Для реалтаймовых еще советую поискать алгоритм A*. |
Baumanec |
15.05.2008 19:08
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Ну как в старике устроенно это просто, там как бы наложение ландшафта, а потом при столкновении с юнитами уже меньше обсчитывать...
|
Baumanec |
15.05.2008 20:01
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Или я вообще ничего не понимаю, но в первом же выпавшем алгоритме ошибка...
Алгоритм Или я не прав... А так принцип ясен, я совершенно в другую сторону думал... |
andriano |
15.05.2008 22:36
Сообщение
#6
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Изложена ужасно неоптимальный вариант алгоритма.
До конца не читал, но начало, вроде бы, правдоподобное. |
Baumanec |
16.05.2008 17:42
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Там он волну запускает от старта, и собирает тоже...
А как экономней сделать, это ясно... Сообщение отредактировано: Baumanec - 16.05.2008 17:43 |
andriano |
16.05.2008 19:56
Сообщение
#8
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Почему от старта?
Там конечной точке присваивается 0, а потом ищутся точки, совпадающие со счетчиком, начальное значение которого тоже 0, т.е. ищется, как и положено от конца к началу. |
Baumanec |
18.05.2008 23:03
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Блин действительно, чё-то я не разглядел, 3 раза читал, сам понял как делать, а казалось что тут ошибка, но после пяти раз я уже сам додумал.
|
Текстовая версия | 8.06.2024 3:47 |