2026-rff_mp/SobolevNS/docs/data/task2_maze
2026-05-22 13:48:25 +03:00
..
docs/data add experiment 2026-05-22 13:46:32 +03:00
maze_solver add maze_solver 2026-05-22 13:42:42 +03:00
mazes add mazes 2026-05-22 13:43:23 +03:00
demo.py add demo 2026-05-22 13:48:08 +03:00
experiment.py add experiment 2026-05-22 13:46:32 +03:00
generate_mazes.py generate mazes 2026-05-22 13:45:29 +03:00
generate_weighted_choice.py generate mazes 2026-05-22 13:45:29 +03:00
plot_results.py add experiment 2026-05-22 13:46:32 +03:00
README.md add README 2026-05-22 13:48:25 +03:00

Задание 2. Поиск выхода из лабиринта (паттерны GoF)

Применены 4 паттерна: Builder, Strategy, Observer, Command.

Как запустить

# 1) сгенерировать тестовые лабиринты
python3 generate_mazes.py
python3 generate_weighted_choice.py

# 2) демонстрация всех паттернов на маленьком лабиринте
python3 demo.py

# 3) эксперимент: 7 запусков × 4 стратегии × 7 лабиринтов
python3 experiment.py
# результат -> docs/data/results.csv

# 4) графики
python3 plot_results.py
# результат -> docs/data/plots/*.png

Формат лабиринта (текстовый)

Символ Что означает
# стена
(пробел) или . проход, вес 1 (асфальт)
, проход, вес 2 (песок)
~ проход, вес 3 (болото)
S старт (ровно один)
E выход (ровно один)