Уровень 1 0 / 100 XP
Сегодня
0 мин
0 вопросов
- точность
0 уроков

Завтра счёт начнётся заново

Новое достижение
Первые шаги

Scenario

Scenario

Интерактивные ветвящиеся сценарии. Для обучения через выбор.

Использование

Сценарии определяются в YAML-файле рядом с контентом:

# content/concepts/my-concept/scenario.yaml
start: intro

nodes:
  intro:
    text: "Вы начинаете проект. Что делаете первым?"
    choices:
      - text: "Пишу код сразу"
        next: bad_start
      - text: "Планирую архитектуру"
        next: good_start

  good_start:
    text: "Отличный выбор! Планирование — ключ к успеху."
    ending: true
    score: 100

  bad_start:
    text: "Без плана код быстро превращается в хаос."
    ending: true
    score: 30

И подключается в markdown:

{{< scenario file="scenario.yaml" >}}

Структура узла

Поле Тип Описание
text string Текст узла (поддерживает Markdown)
choices array Варианты выбора
ending boolean Это конечный узел
score number Очки за достижение узла
effects object Изменение переменных
condition string Условие показа узла

Формат выбора

choices:
  - text: "Текст кнопки"
    next: "id_следующего_узла"
    effects:
      karma: +10
    condition: "karma > 0"

Переменные

variables:
  karma: 50
  money: 100

nodes:
  shop:
    text: "У вас ${{money}}. Купить инструмент за $50?"
    choices:
      - text: "Купить"
        next: bought
        condition: "money >= 50"
        effects:
          money: -50

События

Events.SCENARIO_START      // Сценарий начался
Events.SCENARIO_CHOICE     // Сделан выбор
Events.SCENARIO_NODE       // Перешли на узел
Events.SCENARIO_END        // Сценарий завершён

Интеграция с атомами

В узлах можно использовать атомы:

nodes:
  quiz_node:
    text: "Проверим знания:"
    atom:
      type: quiz-question
      question: "Что такое REST?"
      options:
        - "Стиль архитектуры API"
        - "База данных"
        - "Язык программирования"
      correct: 0
    onCorrect: success
    onWrong: retry