maze

0

Описание

Реализация консольной утилиты для генерации и решения лабиринтов.

Языки

  • Python100%
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
README.md

maze

Задание:

Реализация консольной утилиты для генерации и решения лабиринтов.

Предусмотреть:

  1. Интерфейс командной строки (CLI) или графический интерфейс
  2. Возможность указывать размеры лабиринта (изображения)
  3. Генерацию лабиринта и сохранение его в виде изображения jpg, png (выходной файл указывает пользователь)
  4. Сохранение лабиринта в виде любого текстового формата
  5. Загрузку лабиринта из текстового файла

Решение:

Алгоритм двоичного дерева (генерация):

Проходим по каждой ячейке лабиринта

Для каждой ячейки случайно выбираем направление: вверх или вправо

Прокладываем проход в выбранном направлении

Получается лабиринт с уклоном в одну сторону, но гарантированно проходимый

Алгоритм Ли (решение):

Используем поиск в ширину (BFS)

Распространяем "волну" от стартовой точки

Каждая ячейка получает номер шага, на котором до нее дошли

Восстанавливаем путь от конечной точки к начальной, выбирая соседей с меньшим номером

maze.py:

Модуль для генерации и решения лабиринтов.

Генерация: алгоритм двоичного дерева.

Решение: алгоритм Ли (волновой алгоритм, BFS).

files_work.py

Модуль для сохранения и загрузки лабиринтов в текстовом формате.

images_work.py

Модуль для создания изображений лабиринтов (PNG/JPG).

main.py

CLI-утилита для генерации и решения лабиринтов.

Команды:

generate: сгенерировать лабиринт (опционально сохранить изображение/текст и решить)

solve: загрузить лабиринт из текста и решить (опционально сохранить изображение)

Генерация изображения: python main.py generate --width 10 --height 10 --image maze.png

Генерация текста: python main.py generate --width 10 --height 10 --text maze.txt

Решение из файла: python main.py solve --input maze.txt --image solution.png --show