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

Семейство: 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)