Commit Graph

2 Commits

Author SHA1 Message Date
Maxim Dolgolyov 5b075cde86 feat(phys9 finals): прогресс-бары и ачивки финалов Wave F + G
Новый модуль frontend/js/phys9_finals.js:

1. РАСШИРЯЕТ window.checkNum чтобы поддерживать сигнатуру
   (id, answer, unit, tol) — раньше legacy checkNum принимал только
   sec для POOLS, из-за чего кнопки «Проверить» в финалах не работали.

2. ПРОГРЕСС-БАР под заголовком каждого finalN:
   - Подсчитывает количество <input id="fin1-q1"...> в финале
   - При правильном ответе обновляет % решённых
   - +8 XP за каждую решённую задачу

3. АЧИВКИ:
   - При 100% решённых задач финала — +50 XP + бэйдж
     «★ МАСТЕР ГЛАВЫ» (физика9_chN_master)
   - При всех 5 финалах — +150 XP + ачивка «МАГИСТР ФИЗИКИ 9»
     (Wave G — финал курса)

Подключение во все 5 ch + хук на ensureBuilt вызывает
PHYS9_FINALS_INIT(id) для id вида final1..final5.

(linter добавил { delimiters, throwOnError:false } в renderMathInElement
вызовы во всех 5 widget-модулях — сохранено).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:55:44 +03:00
Maxim Dolgolyov bf788c1c3a feat(phys9 ch1): добавлены 14 виджетов Wave A — Глава 1 «Основы кинематики»
Новый модуль frontend/js/phys9_ch1_widgets.js — экспортирует
window.PHYS9_CH1_WIDGETS = { p1..p14: fn }.

Каждая функция инжектится в pN-body через расширенный ensureBuilt hook
после оригинального билда и блока POOLS-задач. Идемпотентно
(проверка class wg-phys9-extra-<id>).

Виджеты:
- §1 DnD: 8 объектов → точка / не точка
- §2 CALC: скорость катера отн. берега (slider v_катера, v_течения,
  направление)
- §3 DnD: 8 величин → вектор / скаляр
- §4 CALC + SVG: проекции вектора по углу с тригокружностью
- §5 DnD: 6 траекторий → s=|Δr| или s>|Δr|
- §6 CALC: v=s/t с переводом в км/ч + бытовая аналогия
- §7 CALC: средневзвешенная ⟨v⟩ + ловушка «среднее арифметическое»
- §8 DnD: 6 уравнений x(t) → характер движения
- §9 CALC: время и место встречи двух тел
- §10 DnD: 6 признаков → знак мгновенной v
- §11 CALC: режим движения (ускорение/торможение/равномерное)
- §12 CALC: тормозной путь автомобиля
- §13 CALC: Δx и v при равноуск. + проверка v²−v₀²=2aΔx
- §14 DnD: 6 графиков v(t) → знак ускорения

Все виджеты используют:
- стандартные CSS-классы .wg, .sliders, .score-display, .drop-box
  (из phys-textbook-widgets.css)
- палитру PHYS9_COLORS (тёмная тема работает автоматически)
- KaTeX для формул
- единый DnD движок через wireDnd

В ch1.html подключён скрипт + расширен hook _injectTasks вызывать
PHYS9_CH1_WIDGETS[id] после рендера задач.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 09:44:28 +03:00