Семейство: CoopSilent
Кооператив без общения: молча выложить в правильном порядке.
Игры
koaliciya, poryadok
Use Cases
flowchart LR
Player((Player)) --> UC_PlaySilent[UC-PlayCardSilent]
System((System)) --> UC_CheckOrder[UC-CheckAscendingOrder]
System --> UC_LoseLife[UC-LoseLifeOnError]
Host((Host)) --> UC_StartRound[UC-StartRound]
FSM
stateDiagram-v2
[*] --> DealCards: roundStart
DealCards --> AwaitPlay: cardsDealt
AwaitPlay --> CheckOrder: cardPlayed
CheckOrder --> AwaitPlay: orderValid
CheckOrder --> LoseLife: orderInvalid
LoseLife --> DealCards: livesRemain
LoseLife --> GameOver: noLives
CheckOrder --> NextRound: allCardsPlayed
NextRound --> DealCards: roundLessThanMax
NextRound --> GameOver: allRoundsWon
GameOver --> [*]
Sequence: Коалиция
sequenceDiagram
participant P1 as Player1
participant P2 as Player2
participant API as GameService
Note over P1,P2: no chat hints allowed
P1->>API: play_card {value:12}
API->>API: last_played=12, awaiting higher
P2->>API: play_card {value:45}
API->>API: 45>12 ok
P2->>API: play_card {value:8}
API->>API: 8<45 FAIL, lose life
Shared module: simultaneous.py
pending_plays— буфер до reveal (для одновременных ходов)validate_ascending(last, new)→ boolround_config(round_num)→ cards per player
Per-game вариации
| Игра | Объект | Раунды |
|---|---|---|
koaliciya |
числа 1–100 | 4 раунда, 1–4 карты, 4 жизни |
poryadok |
карточки категорий | сортировка по хронологии/размеру |
NFR
- NFR-G06: FR-056 — блокировка чат-подсказок (только game actions)
- Кооперативная победа:
winner_id= null,team_won: true