Семейство: MemoryMatch
Пары, лото, бинго — скрытые тайлы и reveal.
Игры
memo, loto, bingo
Use Cases
flowchart LR
Player((Player)) --> UC_Flip[UC-FlipTile]
Player --> UC_Mark[UC-MarkNumber]
System((System)) --> UC_Draw[UC-DrawBall]
System --> UC_Check[UC-CheckMatch]
FSM
stateDiagram-v2
[*] --> Hidden: boardDealt
Hidden --> OneRevealed: firstFlip
OneRevealed --> Hidden: mismatch
OneRevealed --> PairFound: match
PairFound --> Hidden: continue
PairFound --> GameOver: allPairs
GameOver --> [*]
Sequence: Мемо
sequenceDiagram
participant P as Player
participant API as GameService
P->>API: flip_tile {index:5}
API->>API: reveal tile 5
P->>API: flip_tile {index:12}
API->>API: compare; hide if mismatch
API-->>P: board state (masked)
Shared module: memory.py
create_pairs(deck_size)— пары id → image/textflip_state(board, idx)— first/second flip trackingbingo_card()— 5×5 с free centerloto_draw(pool)— без повтора 1–90
Per-game вариации
| Игра | Сетка | Победа |
|---|---|---|
memo |
N×M пар | все пары открыты |
loto |
карточка 3×9 | первая полная линия |
bingo |
5×5 | 5 в ряд на карте |
NFR
- NFR-G01
- Состояние скрытых клеток не утекает в API (только revealed + viewer's card)