Функциональные требования — игры
Расширение functional-requirements.md для каталога «Тейбл Тайм».
Платформенные FR (каталог)
| ID |
Требование |
Приоритет |
| FR-051 |
Каталог shall возвращать все реализованные plugin_id с min/max players |
Must |
| FR-052 |
Нереализованные игры should отображаться в лобби как «скоро» с badge сезона |
Could |
| FR-053 |
Плагин should объявлять implementation_tier (1–4) в metadata каталога |
Should |
| FR-054 |
Tier-3 игры should поддерживать upload медиа ≤ 2 MB |
Should |
| FR-055 |
Tier-2 игры should поддерживать роль Judge (host или назначенный player) |
Should |
| FR-056 |
Coop-плагины should ограничивать подсказки только game actions |
Should |
Шаблон per-game FR
Каждая игра в docs/05-games/{id}/game-spec.md содержит блок:
- FR-{id}-01 — инициализация state
- FR-{id}-02 — валидация action по фазе
- FR-{id}-03 — условие победы
- FR-{id}-04 — серверный RNG (если применимо)
- FR-{id}-05 — маскирование секретов per-viewer (если применимо)
Матрица 52×5 (сводная)
plugin_id |
FR-01 init |
FR-02 actions |
FR-03 win |
FR-04 RNG |
FR-05 secret |
bonjour_madame |
roles+claims |
claim/believe |
most points |
— |
hidden role |
shlyapa |
✅ word+scores |
guess/judge |
3 pts |
word pick |
word |
perudo |
dice hands |
bid/challenge |
last player |
dice |
hidden dice |
loto |
cards+pool |
mark |
full line |
draw |
own card |
parol |
teams |
hint/guess |
25 pts |
word |
password |
veriu_ne_veriu |
deck |
claim/doubt |
empty hand |
— |
— |
kubiki |
scorecard |
roll/score |
high score |
d6×5 |
— |
chapaev |
board+balls |
strike |
clear field |
— |
— |
sound_quiz |
clips |
guess |
most correct |
clip order |
— |
memo |
pairs board |
flip×2 |
all pairs |
shuffle |
hidden |
pugovki |
virtual string |
move button |
pattern |
— |
— |
korol_govno |
hands |
play card |
shed all |
shuffle |
hand |
kontakt |
✅ secret |
assoc/contact |
match |
word |
secret |
palma |
gestures |
guess |
points |
— |
gesture |
shagay_naadan |
track |
roll/move |
finish |
d6 |
— |
chet_nechet |
bets |
bet/reveal |
chips |
d6 |
— |
magnet_garden |
field |
place magnet |
area |
— |
— |
sunduchki |
chests |
pick |
most treasure |
chest content |
hidden |
na_oshchup |
objects |
guess |
points |
object |
— |
draw_film |
prompt |
draw/guess |
points |
prompt |
prompt |
karty |
deck |
play/guess |
points |
shuffle |
— |
one_to_twelve |
track 1-12 |
roll/mark |
fill track |
2d6 |
— |
na_bukvu |
letter |
word |
points |
letter |
— |
gora_kamney |
stack |
place |
height |
— |
— |
four_questions |
Q set |
answer |
correct |
— |
— |
sto_kletok |
10×10 |
place |
territory |
— |
— |
kucha_mala |
hands |
play |
shed |
shuffle |
hand |
dva_slova |
word |
2-word hint |
guess |
word |
word |
naidi_chislo |
range |
guess |
found |
secret # |
secret |
ne_krestiki |
grid |
place |
line rule |
— |
— |
skachki |
horses |
play card |
finish |
shuffle |
hand |
koaliciya |
cards+lives |
play_card |
4 rounds |
deal |
hand |
ya_tak_vizhu |
prompt |
draw |
points |
prompt |
— |
yatzy |
scorecard |
roll/score |
high total |
5d6 |
— |
tabletime_clock |
timer |
timed action |
points |
— |
— |
siluet |
image |
guess |
points |
image |
— |
ya_by_sdul |
targets |
blow power |
clear |
— |
— |
holodno_goryacho |
grid+target |
guess cell |
find |
secret cell |
secret |
pazly |
pieces |
drag |
complete |
shuffle |
— |
chto_tut_est |
list |
name items |
most |
list |
— |
storytelling |
story |
add sentence |
complete |
— |
— |
poryadok |
cards |
play order |
lives |
deal |
hand |
bingo |
5×5 card |
mark |
bingo line |
draw |
own card |
korobochka |
box |
guess |
points |
content |
— |
ot_nachala_do_kontsa |
timeline |
place card |
order |
shuffle |
— |
stakanchiki |
cups |
pick |
find |
shuffle |
ball pos |
dice_board |
✅ 6×6 |
roll/choose |
3 in row |
2d6 |
— |
chto_ranshe |
events |
order |
lives |
shuffle |
— |
ya_tebya_znayu |
questions |
answer |
points |
— |
— |
belosnezhka |
apples |
take |
limit |
— |
— |
spy_i_see |
roles |
draw/guess |
spy caught |
roles |
spy |
tri_v_ryad |
8×8 |
swap |
score |
board |
— |
kto_bolshe |
categories |
bet |
most |
— |
— |
tbd_finale |
TBD |
TBD |
TBD |
TBD |
TBD |
Детальные FR — Tier 1 (Phase 4a)
yatzy
| ID |
Требование |
| FR-yatzy-01 |
Система shall раздавать scorecard с 13 категориями на игрока |
| FR-yatzy-02 |
Игрок shall бросать 5d6 до 3 раз за ход, фиксируя кости между бросками |
| FR-yatzy-03 |
Игрок shall записать очки в одну незаполненную категорию за ход |
| FR-yatzy-04 |
Бросок shall генерироваться сервером (CSPRNG) |
| FR-yatzy-05 |
Победа shall по наибольшей сумме после заполнения всех категорий всеми |
koaliciya
| ID |
Требование |
| FR-koaliciya-01 |
Система shall раздать 1–4 карты (1–100) по номеру раунда |
| FR-koaliciya-02 |
Игрок shall выложить карту play_card без передачи хода по очереди |
| FR-koaliciya-03 |
Система shall проверять строго возрастающий порядок на столе |
| FR-koaliciya-04 |
При ошибке shall сниматься 1 жизнь (макс 4); при 0 — поражение |
| FR-koaliciya-05 |
Победа shall при успешном прохождении 4 раундов (кооператив) |
memo
| ID |
Требование |
| FR-memo-01 |
Система shall создать сетку пар (N×M/2 пар) |
| FR-memo-02 |
Игрок shall открывать 2 тайла за ход; при несовпадении — скрыть |
| FR-memo-03 |
При совпадении тайлы shall оставаться открытыми |
| FR-memo-04 |
Победа shall по наибольшему числу найденных пар |
sto_kletok
| ID |
Требование |
| FR-sto_kletok-01 |
Система shall инициализировать поле 10×10 |
| FR-sto_kletok-02 |
Игрок shall ставить фишку на свободную клетку по очереди |
| FR-sto_kletok-03 |
Захват shall по правилам окружения (выпуск шоу) |
| FR-sto_kletok-04 |
Победа shall по контролю большинства клеток или очков |
perudo
| ID |
Требование |
| FR-perudo-01 |
Система shall выдать каждому 5 костей (скрыто) |
| FR-perudo-02 |
Игрок shall объявлять bid {qty, face} или challenge |
| FR-perudo-03 |
При challenge shall раскрываться все кости и считаться face |
| FR-perudo-04 |
Проигравший challenge shall терять 1 кость |
| FR-perudo-05 |
Победа shall последнему с костями |
Связанные документы