1
0
forked from UNN/2026-rff_mp
2026-rff_mp/ShapovalovKA/docs/data/2Task/Код диаграммы.txt
2026-05-25 11:58:51 +03:00

89 lines
3.4 KiB
Plaintext

classDiagram
class Клетка {
+int x, y
+bool стена, старт, выход
+int вес
+проходима()
}
class Лабиринт {
+int ширина, высота
+Клетка[][] клетки
+Клетка стартоваяКлетка, выходнаяКлетка
+получитьКлетку(x,y)
+получитьСоседей(клетка)
+установитьСтарт(x,y)
+установитьВыход(x,y)
}
class СтроительЛабиринта {
<<интерфейс>>
+построитьИзФайла(имяФайла)
}
class СтроительИзТекстовогоФайла {
+построитьИзФайла(имяФайла)
}
class СтратегияПоискаПути {
<<интерфейс>>
+найтиПуть(лабиринт, старт, выход)
}
class ПоискВШирину
class ПоискВГлубину
class Астар
class Дейкстра
class РешательЛабиринта {
-Лабиринт лабиринт
-СтратегияПоискаПути стратегия
+установитьСтратегию(стратегия)
+решить() СтатистикаПоиска
}
class СтатистикаПоиска {
+int длинаПути
+int посещеноКлеток
+float времяМс
}
class Наблюдатель {
<<интерфейс>>
+обновить(событие, данные)
}
class КонсольноеПредставление {
+обновить(событие, данные)
-отобразить()
}
class Команда {
<<интерфейс>>
+выполнить()
+отменить()
}
class КомандаПеремещения {
-Игрок игрок
-Лабиринт лабиринт
-String направление
+выполнить()
+отменить()
}
class Игрок {
+Клетка позиция
+переместитьсяВ(клетка)
}
class КонтроллерИгры {
-List наблюдатели
-Stack команды
+подписать(наблюдатель)
+уведомить(событие, данные)
+выполнитьКоманду(команда)
+отменить()
}
СтроительЛабиринта <|-- СтроительИзТекстовогоФайла
СтратегияПоискаПути <|-- ПоискВШирину
СтратегияПоискаПути <|-- ПоискВГлубину
СтратегияПоискаПути <|-- Астар
СтратегияПоискаПути <|-- Дейкстра
РешательЛабиринта --> СтратегияПоискаПути
РешательЛабиринта --> Лабиринт
Лабиринт --> Клетка
КонтроллерИгры --> Игрок
КонтроллерИгры --> Команда
КонтроллерИгры --> Наблюдатель
КомандаПеремещения --> Игрок
КомандаПеремещения --> Лабиринт
КонсольноеПредставление ..|> Наблюдатель