Семейство: CardTrick
Колоды, раздача, валидация комбинаций, блеф.
Игры
perudo, korol_govno, kucha_mala, skachki, karty
Use Cases
flowchart LR
Player((Player)) --> UC_PlayCard[UC-PlayCard]
Player --> UC_Bid[UC-Bid]
Player --> UC_Challenge[UC-Challenge]
System((System)) --> UC_Shuffle[UC-ShuffleDeal]
System --> UC_Validate[UC-ValidateTrick]
FSM
stateDiagram-v2
[*] --> Deal: roundStart
Deal --> AwaitAction: cardsDealt
AwaitAction --> PlayCard: validPlay
AwaitAction --> Bid: perudoBid
Bid --> AwaitAction: bidPlaced
AwaitAction --> Challenge: challenge
Challenge --> Reveal: diceOrCardsShown
Reveal --> CheckElimination: resolved
CheckElimination --> Deal: nextRound
CheckElimination --> GameOver: onePlayerLeft
GameOver --> [*]
Sequence: Перудо — challenge
sequenceDiagram
participant P1 as Player1
participant P2 as Player2
participant API as GameService
P1->>API: bid {qty:3, face:4}
P2->>API: challenge {}
API->>API: reveal all dice, count face
API-->>P1: loser loses die
Shared module: deck.py
def shuffle_deck(cards, seed) -> list: ...
def deal(hands, count_per_player) -> dict[str, list]: ...
def valid_play(hand, card, trick_rules) -> bool: ...
Per-game вариации
| Игра | Колода | Механика |
|---|---|---|
perudo |
кости под столом | bid / challenge |
korol_govno |
52 карты | сбросить все карты |
kucha_mala |
36 карт | сброс по правилам |
skachki |
гоночные карты | первая лошадь к финишу |
karty |
тематические | угадывание по карте |
NFR
- NFR-G01: валидация на сервере
- Скрытые карты/кости только в
render_web(viewer_id)