50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
# Отчёт: поиск пути в лабиринте
|
||
|
||
Паттерны: 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 | нет |
|
||
|
||

|
||
|
||
## Выводы
|
||
|
||
- BFS и A* находят кратчайший путь.
|
||
- DFS путь может быть длиннее.
|
||
- На пустом лабиринте алгоритмы работают быстрее всего.
|
||
- Без выхода все стратегии возвращают пустой путь.
|