update README.md
This commit is contained in:
parent
94fa4dae6b
commit
460a535ba0
121
README.md
121
README.md
@ -34,4 +34,123 @@ graph TD;
|
||||
```
|
||||
Главный абстрактный класс - Entity, который имеет только имя. От него наследуются предметы и персонажи. Персонажи могут чувствовать *(IFeelabe)*, двигаться *(IMovable)* и брать вещи *(ITakeable)*. Также персонажи имеют гендер *(enum Feels)*.
|
||||
|
||||
За историю отвечает класс *StoryTeller*. Он меняет состояние персонажей и отображает их состояние.
|
||||
За историю отвечает класс *StoryTeller*. Он меняет состояние персонажей и отображает их состояние.
|
||||
|
||||
## UML Диаграмма
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Entity {
|
||||
# String name
|
||||
+ getName() String
|
||||
}
|
||||
class Character {
|
||||
# Item itemInHand
|
||||
# Feels feel
|
||||
- String currentState
|
||||
- Gender gender
|
||||
- Entity position
|
||||
+ setFeel(Feels)* void
|
||||
+ moveTo(Entity)* void
|
||||
+ grab(Item)* void
|
||||
+ getItemInHand() Item
|
||||
+ getPosition() Entity
|
||||
+ getGender() String
|
||||
+ getState() String
|
||||
# setState(String) void
|
||||
# setPosition(Entity) void
|
||||
}
|
||||
class FrenBok {
|
||||
- IGrabbable characterInHand
|
||||
+ grabCharacter(IGrabbable) void
|
||||
+ setFeel(Feels) void
|
||||
+ moveTo(Entity) void
|
||||
+ grab(Item) void
|
||||
+ pushCharacterBehindItem(Item) void
|
||||
}
|
||||
class Karlson {
|
||||
+ grab(Item) void
|
||||
+ setFeel(Feels) void
|
||||
+ moveTo(Entity) void
|
||||
+ grabFrom(Container) void
|
||||
+ getGrabbablePart() String
|
||||
}
|
||||
|
||||
class Item {
|
||||
- Character owner
|
||||
+ getOwner() Character
|
||||
+ setOwner(Character) void
|
||||
}
|
||||
class Container {
|
||||
- Item innerItem
|
||||
+ getInnerItem() Item
|
||||
}
|
||||
|
||||
class Feels {
|
||||
<<enumeration>>
|
||||
+ SAD
|
||||
+ ANGRY
|
||||
+ SCARY
|
||||
+ RAGE
|
||||
+ NORMAL
|
||||
- String feel
|
||||
+ values() Feels[]
|
||||
+ toString() String
|
||||
+ valueOf(String) Feels
|
||||
}
|
||||
|
||||
class Gender {
|
||||
<<enumeration>>
|
||||
- String gender
|
||||
+ MAN
|
||||
+ WOMAN
|
||||
+ valueOf(String) Gender
|
||||
+ toString() String
|
||||
+ values() Gender[]
|
||||
}
|
||||
|
||||
class StoryTeller {
|
||||
- Item door
|
||||
- Item meatball
|
||||
- Container fryingPan
|
||||
- FrenBok frenBok
|
||||
- Karlson karlson
|
||||
- Item kitchenHob
|
||||
+ play() void
|
||||
}
|
||||
|
||||
class ICanTake {
|
||||
<<interface>>
|
||||
+ grab(Item) void
|
||||
}
|
||||
|
||||
class IMovable {
|
||||
<<interface>>
|
||||
+ moveTo(Entity) void
|
||||
}
|
||||
|
||||
class IFeelable {
|
||||
<<interface>>
|
||||
+ setFeel(Feels) void
|
||||
}
|
||||
|
||||
class IGrabbable {
|
||||
<<interface>>
|
||||
+ getGrabbablePart() String
|
||||
}
|
||||
|
||||
IGrabbable --|> IMovable
|
||||
|
||||
Character --|> Entity
|
||||
Container --|> Item
|
||||
FrenBok --|> Character
|
||||
Item --|> Entity
|
||||
Karlson --|> Character
|
||||
|
||||
Character ..|> IFeelable
|
||||
Character ..|> IMovable
|
||||
Character ..|> ICanTake
|
||||
Karlson ..|> IGrabbable
|
||||
|
||||
Character --> Feels
|
||||
Character --> Gender
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user