Есть ли алгоритм тестирования лабиринта на отсутствие замкнутых пространств?

Здравствуйте, товарищи, господа, братья!
Нашёл много примеров интересной генерации лабиринтов. Но не смог найти тестирования его под указанные далее требования.

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

С кодом разберусь, логика пока не ясна, кроме как обойти его весь, каждую из пройденных точек, отмечая как пройденную, а в случае недоступных - выдавать ошибку. Но чутьё подсказывает, что это неверный путь.

Было бы здорово, если бы была возможность отобразить "сплошную стену", проход в которой сделал бы лабиринт корректным.
  • Вопрос задан
  • 568 просмотров
Пригласить эксперта
Ответы на вопрос 3
@alex_ak1
Если лабиринт на сетке или графе (а как его еще можно задать-то, кстате), то простой волновой алгоритм. Проводим волной и смотрим, есть ли недоступные, можно ли дойти от конца до начала.
Ответ написан
Tiendil
@Tiendil
Разработчик ПО.
Можно искать количество компонент связанности, начать разбираться можно отсюда: https://ru.wikipedia.org/wiki/Связный_граф
Ответ написан
Комментировать
GavriKos
@GavriKos Куратор тега Разработка игр
Ну самое простое. Лабирит разбивается на ячейки. Количество ячеек - известно (площадь лабиринта). Идем по всему лабиринту рекурсивно например (т.е. на каждом ветвлении идем по каждой ветке). И считаем количество пройденых уникальных ячеек. Если по итогу количество пройденых уникальных ячеек меньше чем площадь - то у нас есть замкнутое пространство.

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

Войдите, чтобы написать ответ

Похожие вопросы