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

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

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

Decision Sim

Пошаговая симуляция: решения двигают показатели, в конце обязательный разбор механизма

Decision Sim

Развивает: принятие решений в системе с отложенной обратной связью. Атом исследовательский: верного прохождения у него нет, оценку он не ставит.

Автор задаёт стартовое состояние (несколько показателей), последовательность ходов с вариантами, эффекты каждого варианта и обязательный разбор. Ученик делает ходы, видит, как состояние поехало, и в конце читает, ПОЧЕМУ так вышло. Без debrief атом не соберётся: симуляция без разбора это игрушка, а не учебный блок.

Правило хода и допущения модели показаны прямо в блоке: арифметика симуляции не прячется от ученика.

Демо

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

{{< atom type="decision-sim" >}}
title: "Заголовок симуляции"
intro: "Одна строка: что за система и чем вы управляете"
modelNote: "обязательно: что именно упрощено в модели"
resources:
  - { id: fish, label: "Рыба в озере", start: 100, min: 0, max: 200, unit: "т", regrow: 0.25 }
  - { id: money, label: "Касса", start: 10, min: 0, max: 200 }
rounds:
  - prompt: "Что решаем на этом ходе"
    options:
      - text: "Вариант выбора"
        hint: "короткая качественная подсказка, без цифр"
        effects: { fish: -20, money: 8 }
        note: "почему состояние поехало именно так"
      - text: "Другой вариант"
        effects: { fish: -70, money: 28 }
debrief:
  text: "Объяснение механизма: почему одни решения дали такой результат, а другие другой"
  lessons:
    - "Вывод, который переносится на другие системы"
{{< /atom >}}
Параметр Тип Описание
title string Обязателен
intro string Вводная строка, к ней применяется метка tag
tag string Метка достоверности: fact, src, debate
modelNote string Обязателен: допущения модели, показываются ученику
resources array {id, label, start, min, max, unit, regrow, color}, до четырёх штук
rounds array {prompt, options}, минимум два варианта в ходе
options[] object {text, hint, effects: {resourceId: delta}, note}
debrief object Обязателен: {text, lessons: [], tag}

regrow это доля прироста за ход от остатка (0.25 значит плюс 25% к тому, что осталось после вашего решения). Порядок внутри хода всегда один: сначала эффекты выбора, потом прирост, потом ограничение по min и max. Это правило печатается в блоке словами, чтобы ученик считал вместе с симуляцией, а не гадал.

Домен: visual (lazy-load).

Графика и деградация

Траектория показателей по ходам рисуется на PixiJS 8. Движок берётся с CDN-цепочки (jsdelivr, unpkg, cdnjs) и грузится только когда блок доскроллен, а не на загрузке страницы. Тикер останавливается, как только блок ушёл из вьюпорта.

Канвас это надстройка. Если движок не загрузился, соединение экономное или устройство слабое, блок работает целиком: те же ходы, те же кнопки, те же цифры показателей, история ходов и тот же разбор. Проверить это можно, заблокировав CDN в devtools: исчезнет только график.

prefers-reduced-motion: reduce гасит пульс текущей точки и переходы полос, состояние показывается сразу.

Доступность

  • Варианты хода это обычные кнопки, высота не меньше 44 пикселей, работают с клавиатуры.
  • После хода фокус переезжает на заголовок следующего хода, изменение состояния проговаривается через role="status".
  • Канвас помечен aria-hidden, весь текст живёт в DOM и находится через Ctrl+F.

Не берите этот атом, когда нужна проверка знания: единственно верного прохождения у симуляции нет, в зачёт она идти не может. После прогона механизм проверяют соседи: причину quiz или appraise, «что было бы, если» counterfactual, порядок шагов order-items. Один выбор без развёртки во времени это scenario или predict. Без JavaScript блок остаётся пустым, поэтому сам механизм должен быть описан текстом урока рядом.