Перейти к содержанию

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