diff --git a/README.md b/README.md index 89a3f1c..41cfbaf 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,24 @@ _Так как на se.ifmo сбросились варианты я взял т ``` ## Структура проекта +```mermaid +graph TD; + Entity-->Character; + Character-->FenBok; + Character-->Karlson; + Entity-->Item; + Item-->Container; +``` +Главный абстрактный класс - Entity, который имеет только имя. От него наследуются предметы и персонажи. +Персонажи могут чувствовать *(IFeelabe)*, двигаться *(IMovable)* и брать вещи *(ITakeable)*. +Также персонажи имеют гендер *(enum Feels)*. + +За историю отвечает класс *StoryTeller*. Он меняет состояние персонажей и отображает их состояние. + +## Особенности 4 лабы +Есть два исключения: `OwnershipException` и `ExitFuelException`. `OwnershipException` - исключение при взятии чужой вещи. +`ExitFuelException` возникает, когда у Карлсона кончается топливо. + +Есть вложенный статический класс `Engin` у Карлсона, отвечающий за его движок. В нём есть локальный класс `Path`, хранящий +в себе дистанцию полёта и формулу расчёта расхода. Для формулы используются анонимные классы интерфейса `IntFormula`. +Есть вложенный не статический класс `Mouth` у Малыша, который отвечает за его речь. \ No newline at end of file