diff --git a/README.md b/README.md index a359406..6193d3a 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,9 @@ npm run check # проверка типов (svelte-check) ```ts import { familyKnowledgeJourneySet } from './family-knowledge-journey'; + import { grandLineDuneCrimeaMinecraftComputersSet } from './grand-line-dune-crimea-minecraft-computers'; import { mySet } from './my-set'; - export const questionSets = [familyKnowledgeJourneySet, mySet]; + export const questionSets = [familyKnowledgeJourneySet, grandLineDuneCrimeaMinecraftComputersSet, mySet]; ``` Готово — набор автоматически появится на экране выбора. @@ -106,6 +107,7 @@ src/ │ ├─ types.ts # Доменные типы (Question, Category, QuestionSet, GameState) │ ├─ question-sets/ # ДАННЫЕ (отделены от UI) │ │ ├─ family-knowledge-journey.ts # набор вопросов +│ │ ├─ grand-line-dune-crimea-minecraft-computers.ts # набор вопросов │ │ └─ index.ts # реестр наборов + хелперы поиска │ ├─ stores/ │ │ └─ game.ts # СОСТОЯНИЕ игры (Svelte store + localStorage) diff --git a/src/lib/question-sets/grand-line-dune-crimea-minecraft-computers.ts b/src/lib/question-sets/grand-line-dune-crimea-minecraft-computers.ts new file mode 100644 index 0000000..99cbc96 --- /dev/null +++ b/src/lib/question-sets/grand-line-dune-crimea-minecraft-computers.ts @@ -0,0 +1,236 @@ +import type { QuestionSet } from '$lib/types'; + +/** + * Второй набор вопросов: «От Гранд Лайн до компьютеров». + * + * Семейный набор про первые приключения One Piece, мир «Дюны», историю Крыма, + * Minecraft и понятные компьютерные факты. Каждая категория содержит ровно + * 5 вопросов с очками 100 / 200 / 300 / 500 / 1000. id вопросов уникальны + * в пределах категории (q1..q5). + */ +export const grandLineDuneCrimeaMinecraftComputersSet: QuestionSet = { + id: 'grand-line-dune-crimea-minecraft-computers', + title: 'От Гранд Лайн до компьютеров', + description: + 'Семейный набор про первые приключения One Piece, мир «Дюны», историю Крыма, Minecraft и понятные компьютерные факты.', + ageRange: '10+ лет / вся семья', + categories: [ + { + id: 'one-piece-first-80', + title: 'One Piece: первые 80 серий', + questions: [ + { + id: 'q1', + points: 100, + question: 'Как зовут главного героя One Piece, который носит соломенную шляпу?', + answer: 'Монки Д. Луффи', + type: 'strict' + }, + { + id: 'q2', + points: 200, + question: 'Какой Дьявольский плод съел Луффи, из-за чего его тело стало резиновым?', + answer: 'Гому Гому но Ми / Резина-резина / Gum-Gum Fruit', + optionalHint: 'Название связано с резиновыми способностями.', + type: 'strict' + }, + { + id: 'q3', + points: 300, + question: 'Как называется первый корабль команды Соломенной Шляпы, подаренный Каей?', + answer: 'Гоинг Мерри / Going Merry', + type: 'strict' + }, + { + id: 'q4', + points: 500, + question: 'Как называется плавучий ресторан, где команда впервые встречает Санджи?', + answer: 'Барати / Baratie', + optionalHint: 'Это ресторан-корабль.', + type: 'strict' + }, + { + id: 'q5', + points: 1000, + question: 'На каком острове команда встречает великанов Дорри и Броги?', + answer: 'Литл-Гарден / Little Garden', + optionalHint: 'На этом острове есть доисторическая атмосфера.', + type: 'strict' + } + ] + }, + { + id: 'dune-herbert', + title: 'Дюна Герберта', + questions: [ + { + id: 'q1', + points: 100, + question: 'Кто написал роман «Дюна»?', + answer: 'Фрэнк Герберт', + type: 'strict' + }, + { + id: 'q2', + points: 200, + question: 'Как называется пустынная планета, известная как Дюна?', + answer: 'Арракис', + type: 'strict' + }, + { + id: 'q3', + points: 300, + question: 'Как зовут наследника дома Атрейдесов, главного героя первого романа?', + answer: 'Пол Атрейдес', + type: 'strict' + }, + { + id: 'q4', + points: 500, + question: 'Как называется ценнейшее вещество, добываемое на Арракисе?', + answer: 'Пряность меланж / меланж / spice', + optionalHint: 'Из-за него Арракис так важен для всей империи.', + type: 'strict' + }, + { + id: 'q5', + points: 1000, + question: 'Сколько романов основной саги «Дюна» написал сам Фрэнк Герберт?', + answer: 'Шесть', + optionalHint: 'Считаются только книги, написанные самим Фрэнком Гербертом.', + type: 'strict' + } + ] + }, + { + id: 'crimea-history', + title: 'История Крыма', + questions: [ + { + id: 'q1', + points: 100, + question: 'Крым — это остров или полуостров?', + answer: 'Полуостров', + type: 'strict' + }, + { + id: 'q2', + points: 200, + question: 'Какое большое море омывает южные и западные берега Крыма?', + answer: 'Чёрное море', + type: 'strict' + }, + { + id: 'q3', + points: 300, + question: 'Как называется древний греческий город в районе современного Севастополя, включённый в список Всемирного наследия UNESCO?', + answer: 'Херсонес Таврический / Tauric Chersonese', + optionalHint: 'Это руины античного греческого полиса-колонии на берегу моря рядом с Севастополем.', + type: 'strict' + }, + { + id: 'q4', + points: 500, + question: 'Как называется город, где находится Ханский дворец — один из главных памятников истории Крымского ханства?', + answer: 'Бахчисарай', + type: 'strict' + }, + { + id: 'q5', + points: 1000, + question: 'Как называлась конференция лидеров СССР, США и Великобритании, проходившая в Крыму в феврале 1945 года?', + answer: 'Ялтинская конференция / Крымская конференция', + optionalHint: 'Она названа по городу на южном берегу Крыма.', + type: 'strict' + } + ] + }, + { + id: 'minecraft', + title: 'Minecraft', + questions: [ + { + id: 'q1', + points: 100, + question: 'Какой зелёный моб в Minecraft может тихо подойти к игроку и взорваться?', + answer: 'Крипер / Creeper', + type: 'strict' + }, + { + id: 'q2', + points: 200, + question: 'Какой режим Minecraft даёт игроку неограниченные ресурсы и возможность летать?', + answer: 'Творческий режим / Creative mode', + type: 'strict' + }, + { + id: 'q3', + points: 300, + question: 'Из какого блока обычно строят рамку портала в Нижний мир?', + answer: 'Обсидиан', + optionalHint: 'Это очень прочный тёмный блок.', + type: 'strict' + }, + { + id: 'q4', + points: 500, + question: 'Как называется красный ресурс Minecraft, который работает почти как электричество и используется для механизмов?', + answer: 'Редстоун / Redstone', + type: 'strict' + }, + { + id: 'q5', + points: 1000, + question: 'Как называется финальный босс Minecraft, живущий в измерении Край?', + answer: 'Дракон Края / Ender Dragon', + optionalHint: 'Это большой летающий босс.', + type: 'strict' + } + ] + }, + { + id: 'computers', + title: 'Компьютеры', + questions: [ + { + id: 'q1', + points: 100, + question: 'Как называется устройство с клавишами для ввода текста и команд?', + answer: 'Клавиатура', + type: 'strict' + }, + { + id: 'q2', + points: 200, + question: 'Как обычно называют центральный процессор компьютера по английской аббревиатуре?', + answer: 'CPU / ЦП', + optionalHint: 'Его часто называют «мозгом» компьютера.', + type: 'strict' + }, + { + id: 'q3', + points: 300, + question: 'Какие две цифры используются в двоичной системе счисления?', + answer: '0 и 1', + type: 'strict' + }, + { + id: 'q4', + points: 500, + question: 'Кто изобрёл World Wide Web в 1989 году, работая в CERN?', + answer: 'Тим Бернерс-Ли', + optionalHint: 'Его имя часто связывают с рождением современной веб-сети.', + type: 'strict' + }, + { + id: 'q5', + points: 1000, + question: 'Как назывался один из первых крупных электронных компьютеров, построенный в 1940-х годах в США?', + answer: 'ENIAC', + optionalHint: 'Это аббревиатура из пяти букв.', + type: 'strict' + } + ] + } + ] +}; diff --git a/src/lib/question-sets/index.ts b/src/lib/question-sets/index.ts index 1b42199..8294571 100644 --- a/src/lib/question-sets/index.ts +++ b/src/lib/question-sets/index.ts @@ -1,5 +1,6 @@ import type { Category, Question, QuestionRef, QuestionSet } from '$lib/types'; import { familyKnowledgeJourneySet } from './family-knowledge-journey'; +import { grandLineDuneCrimeaMinecraftComputersSet } from './grand-line-dune-crimea-minecraft-computers'; /** * Реестр всех доступных наборов вопросов. @@ -13,7 +14,10 @@ import { familyKnowledgeJourneySet } from './family-knowledge-journey'; * │ Всё — на экране выбора набор появится автоматически. │ * └───────────────────────────────────────────────────────────────────────┘ */ -export const questionSets: QuestionSet[] = [familyKnowledgeJourneySet]; +export const questionSets: QuestionSet[] = [ + familyKnowledgeJourneySet, + grandLineDuneCrimeaMinecraftComputersSet +]; /* ----------------------------------------------------------------------- */ /* Хелперы поиска по данным (без состояния). */