From 6b8e38ac0e6f4d68f01f452bbdc8f098e27fc04a Mon Sep 17 00:00:00 2001 From: Ivan Zinchenko Date: Sat, 30 Dec 2023 04:16:59 +0500 Subject: [PATCH] edit README.md --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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