# Отчёт: поиск пути в лабиринте Паттерны: Builder, Strategy, Observer ```mermaid classDiagram class MazeBuilder class TextFileMazeBuilder class PathFindingStrategy class BFSStrategy class DFSStrategy class AStarStrategy class MazeSolver class Observer class ConsoleView MazeBuilder <|-- TextFileMazeBuilder PathFindingStrategy <|-- BFSStrategy PathFindingStrategy <|-- DFSStrategy PathFindingStrategy <|-- AStarStrategy Observer <|-- ConsoleView MazeSolver --> PathFindingStrategy ``` | Лабиринт | Стратегия | Время (мс) | Длина пути | Найден | | --- | --- | --- | --- | --- | | маленький 10x10 | BFS | 0.14 | 19 | да | | маленький 10x10 | DFS | 0.08 | 37 | да | | маленький 10x10 | A | 0.25 | 19 | да | | средний 50x50 | BFS | 2.88 | 99 | да | | средний 50x50 | DFS | 1.91 | 283 | да | | средний 50x50 | A | 2.43 | 99 | да | | большой 100x100 | BFS | 12.23 | 199 | да | | большой 100x100 | DFS | 8.78 | 1643 | да | | большой 100x100 | A | 8.60 | 199 | да | | пустой 50x50 | BFS | 4.88 | 99 | да | | пустой 50x50 | DFS | 3.13 | 1275 | да | | пустой 50x50 | A | 11.55 | 99 | да | | без выхода 20x20 | BFS | 0.00 | 0 | нет | | без выхода 20x20 | DFS | 0.00 | 0 | нет | | без выхода 20x20 | A | 0.00 | 0 | нет | ![График](data/maze_time_comparison.png) ## Выводы - BFS и A* находят кратчайший путь. - DFS путь может быть длиннее. - На пустом лабиринте алгоритмы работают быстрее всего. - Без выхода все стратегии возвращают пустой путь.