UML — State diagrams по семействам
Обобщённые FSM для реализации плагинов. Детали — в families/.
DiceAndScore
stateDiagram-v2
[*] --> AwaitRoll
AwaitRoll --> AwaitChoice: diceRolled
AwaitChoice --> ScoreEntry: categoryChosen
AwaitChoice --> AwaitChoice: keepDice
ScoreEntry --> NextTurn: scored
NextTurn --> AwaitRoll: moreTurns
NextTurn --> GameOver: allDone
GameOver --> [*]
BoardGrid
stateDiagram-v2
[*] --> AwaitMove
AwaitMove --> Placed: cellChosen
AwaitMove --> Swapped: tilesSwapped
Placed --> CheckWin
Swapped --> Cascade
Cascade --> CheckWin
CheckWin --> GameOver: won
CheckWin --> NextTurn: continue
NextTurn --> AwaitMove
GameOver --> [*]
WordParty
stateDiagram-v2
[*] --> Setup
Setup --> ActiveRound
ActiveRound --> AwaitInput
AwaitInput --> Judging: submitted
Judging --> ActiveRound: next
Judging --> GameOver: winScore
GameOver --> [*]
CardTrick
stateDiagram-v2
[*] --> Deal
Deal --> AwaitAction
AwaitAction --> Bid: perudo
Bid --> AwaitAction
AwaitAction --> Challenge
Challenge --> Reveal
Reveal --> Deal: continue
Reveal --> GameOver: oneLeft
GameOver --> [*]
MemoryMatch
stateDiagram-v2
[*] --> Hidden
Hidden --> OneRevealed: flip1
OneRevealed --> Hidden: mismatch
OneRevealed --> PairFound: match
PairFound --> Hidden: morePairs
PairFound --> GameOver: allDone
GameOver --> [*]
CoopSilent
stateDiagram-v2
[*] --> DealCards
DealCards --> AwaitPlay
AwaitPlay --> CheckOrder: cardPlayed
CheckOrder --> AwaitPlay: ok
CheckOrder --> LoseLife: fail
LoseLife --> DealCards: livesLeft
LoseLife --> GameOver: noLives
CheckOrder --> NextRound: roundDone
NextRound --> DealCards: moreRounds
NextRound --> GameOver: won
GameOver --> [*]
MediaCreative
stateDiagram-v2
[*] --> AssignRole
AssignRole --> Drawing
Drawing --> Guessing: mediaSubmitted
Guessing --> Judging
Judging --> AssignRole: nextRound
Judging --> GameOver: win
GameOver --> [*]
PhysicalProxy
stateDiagram-v2
[*] --> Setup
Setup --> AwaitAction
AwaitAction --> Resolve
Resolve --> AwaitAction: continue
Resolve --> GameOver: done
GameOver --> [*]
Маппинг plugin → family FSM
plugin_id |
Базовый FSM |
|---|---|
yatzy, kubiki |
DiceAndScore |
dice_board, sto_kletok, tri_v_ryad |
BoardGrid |
shlyapa, kontakt, parol |
WordParty |
perudo, korol_govno |
CardTrick |
memo, bingo, loto |
MemoryMatch |
koaliciya, poryadok |
CoopSilent |
draw_film, spy_i_see |
MediaCreative |
stakanchiki, pugovki |
PhysicalProxy |