Для оптимизации процесса поиска незакрашенной клетки в лабиринте можно использовать, например, следующие подходы:
- Алгоритм Уилсона. moitvivt.ru Все непосещённые клетки заносятся в список. moitvivt.ru Также этот алгоритм удаляет циклы, если они образуются. moitvivt.ru
- Алгоритм Тремо. habr.com Метод поиска решения лабиринта, который, чтобы обозначить путь, рисует линии и точки на протяжении всего лабиринта. habr.com Нужно выбрать случайный проход и следовать по нему до следующей развилки, отмечая начало и конец каждого прохода. habr.com На развилке всегда выбирать проход, отмеченный наименьшим количеством точек (в идеале не отмеченный ни одной точкой). habr.com
- Оптимизация шагов, в которых оставляются пометки. moitvivt.ru Например, можно не оставлять пометки в первой и последней развилке, а также не оставлять пометки на развилках, следующих за начальной точкой и предшествующих выходу из лабиринта. moitvivt.ru
Также можно использовать алгоритмы, которые не имеют предпочтения в выборе направления, а работают одинаково по всем четырём. moitvivt.ru