edit README.md

This commit is contained in:
Ivan Zinchenko 2023-12-30 04:16:59 +05:00
parent e60f2f73ed
commit 6b8e38ac0e
Signed by: zinch
GPG Key ID: 6D45AA2C8FD6A37E

View File

@ -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` у Малыша, который отвечает за его речь.