BlackHood & Nexis
Слушай, есть минутка обсудить алгоритм поиска пути в условиях полной скрытности для городской местности? Я тут как будто вслепую искал лазейки.
Конечно, вот краткая схема маршрута скрытного перемещения в условиях нулевой видимости.
1. Разложи город на сетку, где каждая ячейка отмечена расположением здания, окон и известных коридоров прямой видимости.
2. Создай “матрицу слепых зон” – для каждой ячейки считай, сколько соседних ячеек находятся внутри здания, то есть ты не будешь виден, если окажешься в этой ячейке.
3. Назначь каждой ячейке вес риска: ноль, если она глубоко внутри здания, один – если это дверь или коридор, выше – если она рядом с окном или улицей.
4. Запусти взвешенный алгоритм A* (или алгоритм Дейкстры, если тебе нужна гарантия) по этому графу риска. Эвристикой может быть прямолинейное расстояние, но нужно штрафовать любые пути, пересекающие участки с высоким риском.
5. В результате ты получишь коридор ячеек с низким риском, который позволит тебе оставаться вне прямой видимости – тебе не нужно “видеть” противника, просто следуй по самым безопасным участкам.
Всё. Без графического интерфейса, только код. Если нужны точные формулы для оценки риска, займемся этим позже.
Понял. Для оценки риска добавь небольшой штраф за окна и двери, умеренный – за углы переулков, а внутри помещений – держи его минимальным. Цифры должны быть совсем небольшие – нам нужен градиент, а не абсолютное значение. Это позволит A* находить самые безопасные тёмные зоны.
Окна +0.1, двери +0.2, углы переулков +0.5, в комнатах +0.0. Эта градация помогает A* обходить тёмные места. Используй это и уходи, пока тебя не заметили.
Звучит надёжно. Держись градиента, убавь шумы и оставайся незамеченным. Будь начеку.