Document question authoring workflow

This commit is contained in:
2026-06-27 11:22:16 +03:00
parent 9e19931d8b
commit 85168b8d1e
3 changed files with 189 additions and 5 deletions
+15 -5
View File
@@ -28,12 +28,17 @@ npm run check # проверка типов (svelte-check)
Чем дороже карточка, тем сложнее вопрос.
3. Ведущий открывает вопрос, затем «Показать ответ», и решает:
- **Засчитать +N** — команде идут очки;
- **Засчитать частично +N/2** — для «почти правильного» ответа ведущий может
дать половину стоимости вопроса;
- **Не засчитывать** — без очков, но вопрос закрыт.
- Штрафов и минусов нет.
4. Для творческих вопросов (type `creative`) кнопка мягче:
4. У некоторых вопросов есть необязательная **подсказка** 💡. Ведущий может
показать её по желанию. Если подсказка показана — ответ засчитывается только
за половину стоимости: мягкая помощь без давления.
5. Для творческих вопросов (type `creative`) кнопка мягче:
«Засчитать творческий ответ +N».
5. Сыгранный вопрос затемняется и больше не выбирается.
6. Когда сыграны все вопросы — экран результата с мягкой финальной фразой.
6. Сыгранный вопрос затемняется и больше не выбирается.
7. Когда сыграны все вопросы — экран результата с мягкой финальной фразой.
Прогресс сохраняется автоматически — после перезагрузки игра продолжится с того же места.
@@ -41,6 +46,11 @@ npm run check # проверка типов (svelte-check)
Архитектура задумана так, чтобы наборы добавлялись без правок UI.
**Структура набора:** ровно **5 категорий**, в каждой ровно **5 вопросов** с
номиналами **100 / 200 / 300 / 500 / 1000** (от простого к сложному). Вопросы
бывают `strict` (однозначный ответ) и `creative` (творческий). У вопроса может
быть необязательное поле `optionalHint` — подсказка для ведущего.
1. Создайте файл `src/lib/question-sets/<name>.ts`:
```ts
@@ -57,14 +67,14 @@ npm run check # проверка типов (svelte-check)
title: 'Категория',
questions: [
{ id: 'q1', points: 100, question: '...', answer: '...', type: 'strict' },
{ id: 'q2', points: 200, question: '...', answer: '...', type: 'strict' },
{ id: 'q2', points: 200, question: '...', answer: '...', optionalHint: '...', type: 'strict' },
{ id: 'q3', points: 300, question: '...', answer: '...', type: 'strict' },
{ id: 'q4', points: 500, question: '...', answer: '...', type: 'creative' },
{ id: 'q5', points: 1000, question: '...', answer: '...', type: 'strict' }
// ровно 5 вопросов с очками 100/200/300/500/1000
]
}
// …остальные категории
// …ещё 4 категории (всего 5)
]
};
```