Commit Graph

3 Commits

Author SHA1 Message Date
Maxim Dolgolyov 790c2e9445 feat(alg7 ux): Wave 5 — UX-буст для всех 4 глав (комбо + анимации + 2 viz)
Сделано:
1. /css/alg7-fx.css — универсальные эффекты:
   - shake (тряска) при неправильном ответе
   - pulse (зелёное свечение) при правильном
   - combo-badge (огненный шильдик ×3, ×5, ×10) при сериях
   - streak-индикатор в углу с пульсацией
   - sparkles (искры) при успехе
   - стили для двух новых визуализаторов

2. /js/alg7-fx.js — система комбо + визуализаторы:
   - MutationObserver автоматически отслеживает .feedback по всем
     четырём главам без правки feedback() в каждой
   - комбо-милестоны: 3 → +5 XP, 5 → +15, 10 → +50, 15 → +75, 20 → +100
   - бонус автоматически уходит через window.addXp(), который
     уже есть на window благодаря top-level function declarations
   - ALG7.buildQuadSumViz() — большой квадрат (a+b)² с 4 цветными
     областями (a², ab, ab, b²); слайдеры a, b; режим (a+b)/(a-b);
     клик по области → подсветка в формуле; живые числа
   - ALG7.buildDiffSquaresViz() — 3-этапная анимация a²-b²=(a-b)(a+b):
     1) большой квадрат с вырезанной угловой b²
     2) пунктирная линия разреза в L-форме
     3) перестроенный прямоугольник со сторонами (a-b)×(a+b)

3. Подключено во всех 4 главах одной строкой <link>/<script>.

4. Ch2 §12: добавлен 4-й интерактив — геометрическая визуализация
   квадрата суммы/разности. Школьник видит ПОЧЕМУ (a+b)²=a²+2ab+b².

5. Ch2 §13: добавлен 3-й интерактив — анимированное геометрическое
   доказательство разности квадратов. Жмёшь «Шаг» → L-форма
   расклеивается и собирается в прямоугольник.

Эффекты работают везде где есть .feedback — все боссы, все
тренажёры, все викторины. Не требует правки логики каждой главы.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 23:25:02 +03:00
Maxim Dolgolyov 84d4ac5bd6 feat(alg7 ch3): Wave 3 — Глава 3 «Уравнения, неравенства, функция» (§15-§20 + Финал)
6 параграфов по учебнику Арефьевой/Пирютко 2022:
- §15. Линейные уравнения ax=b — три случая по корням
- §16. Текстовые задачи: возраст, движение, покупки (алгоритм составления)
- §17. Числовые неравенства — три свойства + сложение/умножение
- §18. Линейные неравенства — алгоритм + особые случаи (0·x>b, 0·x<b)
- §19. Функция — аргумент, f(x), область определения, нули, график
- §20. Линейная функция y=kx+b — наклон, сдвиг, расположение прямых

Новый helper: coordSVG() — координатная плоскость с сеткой, осями,
прямыми и точками. Используется в §20 интерактивах (слайдер k/b)
и для иллюстрации y=2x-3 в карточке теории.

Интерактивы:
- §15: 3 интерактива (сколько корней — викторина; реши; уравнения со скобками)
- §16: 1 интерактив (тренажёр текстовых задач — 6 задач)
- §17: 2 интерактива (изменится ли знак; оценка выражений)
- §18: 3 интерактива (реши простое; со скобками; особые случаи 0·x)
- §19: 3 интерактива (функция или нет; найди f(x0); найди нуль)
- §20: 4 интерактива (СЛАЙДЕР k и b с живым SVG-графиком; угол и нуль;
  параллельны/пересекаются/совпадают; принадлежит ли точка)

Финал: 5 боссов × 5 этапов = 25 этапов. Темы: §15-16, §17, §18, §19, §20.

violet-тема (#7c3aed), KaTeX, глоссарий (15 терминов), Ctrl+K поиск,
sidebar-шпаргалка с формулами, прогресс/XP, синхронизация с
/api/textbooks/algebra-7-ch3/progress.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 22:22:13 +03:00
Maxim Dolgolyov e8767ed30d feat(text7): Wave 0 — каркас Алгебры 7 и Геометрии 7 (hubs + миграции + стабы)
- docs/PLAN_ALGEBRA_7_GEOMETRY_7.md: полный план реализации (содержание, архитектура, волны)
- 018_algebra_7_hub.sql: hub algebra-7 (sort=6) + 4 ch (§1-§3, §4-§14, §15-§20, §21-§25)
- 019_geometry_7_hub.sql: hub geometry-7 (sort=7) + 5 ch (§1-§7, §8-§14, §15-§18, §19-§26, §27-§31)
- algebra_7_hub.html: 4-карточный hub в pink-теме (Арефьева/Пирютко 2022)
- geometry_7_hub.html: 5-карточный hub в blue-теме (Казаков 2022)
- 9 стаб-страниц глав со ссылкой назад в свой hub (заглушки до реализации волн 1-9)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 21:13:56 +03:00