Семейство: WordParty
Словесные игры, скрытая информация per-viewer, human judge.
Игры
shlyapa, kontakt, parol, na_bukvu, dva_slova, storytelling, bonjour_madame, veriu_ne_veriu, four_questions, chto_tut_est, tabletime_clock, holodno_goryacho, chto_ranshe, ot_nachala_do_kontsa, ya_tebya_znayu, kto_bolshe
Use Cases
flowchart LR
Explainer((Explainer)) --> UC_Explain[UC-ExplainOrHint]
Guesser((Guesser)) --> UC_Guess[UC-SubmitGuess]
Judge((Judge)) --> UC_Judge[UC-JudgeAnswer]
System((System)) --> UC_Mask[UC-MaskSecretPerViewer]
FSM
stateDiagram-v2
[*] --> Setup: gameStart
Setup --> ActiveRound: roundStart
ActiveRound --> AwaitInput: promptShown
AwaitInput --> JudgePending: guessSubmitted
JudgePending --> ScoreUpdate: judged
ScoreUpdate --> ActiveRound: nextPrompt
ScoreUpdate --> GameOver: winScore
GameOver --> [*]
Sequence: угадывание (Шляпа)
sequenceDiagram
participant E as Explainer
participant G as Guesser
participant API as GameService
Note over E,API: secret word only in E's view
E->>API: start_guessing
G->>API: guess {word}
E->>API: judge_guess {index, correct}
API-->>G: scores updated
Shared module: secret_word.py
- Словарь server-side
mask_for_viewer(state, viewer_id)— скрыть секрет- Нормализация: lower, trim
Per-game вариации
| Игра | Роли | Секрет |
|---|---|---|
shlyapa |
explainer + guessers | слово |
kontakt |
leader + 2 contact | association + secret |
parol |
2×2 команды | password per team |
na_bukvu |
все | буква + категория |
dva_slova |
explainer | только 2 слова в подсказке |
NFR
- NFR-G02: таймер фазы ±1 с (parol, tabletime_clock)
- NFR-G05: фиксированный словарь для тестов
- FR-055: роль Judge