memo — Мемо
| Поле | Значение |
|---|---|
plugin_id |
memo |
| Выпуск шоу | S2e02 «Мемо» |
| Версия spec | 0.1 |
| Игроки | 2–4 |
| Семейство | MemoryMatch |
| Tier | 1 |
Цель
Открыть все пары карточек. Больше пар — победа (или совместный финиш в MVP).
Компоненты
| Элемент | Описание |
|---|---|
| Поле | Сетка 4×4 (8 пар) default |
| Тайлы | Скрыты / открыты / matched |
Ход
flip_tile{index: number}— открыть тайл.- Если открыт 1 тайл — ждём второй.
- Если 2 тайла: совпали →
matched; не совпали → скрыть оба, ход сопернику. - При совпадении — тот же игрок ходит снова.
FSM
stateDiagram-v2
[*] --> AwaitFlip1
AwaitFlip1 --> OneRevealed: flip
OneRevealed --> AwaitFlip1: flip2 mismatch
OneRevealed --> AwaitFlip1: flip2 match
AwaitFlip1 --> GameOver: allMatched
GameOver --> [*]
Actions
| type | payload | phase |
|---|---|---|
flip_tile |
{index: number} |
AwaitFlip1, OneRevealed |
Победа
Все пары открыты → winner_id = игрок с max pairs_found.
FR
FR-memo-01…04 — см. functional-requirements-games.md