fix(trainer): сложность = структура задачи, а не масштаб чисел
Пользователь верно заметил: масштабирование чисел (больше/меньше) — не настоящая сложность. Настоящая = больше действий, скобки, дроби, переменная в обеих частях. - генераторы размечены структурным level 1-3 (generators.js, LEVELS): напр. Уравнения ax+b=c (1) -> a(x+b)=c (2) -> a(x+b)=c(x+d) (3); Степени: вычислить -> произведение -> степень степени - контрол сложности выбирает ВАРИАНТ-генератор нужного уровня в теме (pickByLevel с клампом к доступным), а не масштабирует числа - клик по чипу навыка закрепляет конкретный вариант (pinned); Авто = адаптивный подбор (умная тренировка от простого к сложному) + показ ур.N текущего - кросс-тематический адаптив pickNext — только в Авто без закрепления - движковое _scaleRange/level оставлено как capability (T18), страница его НЕ использует - смоук движка 682/682, страница 36/36 (Сложный->ген ур.3, Лёгкий->ур.1); эмодзи/eval 0 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -594,6 +594,38 @@
|
||||
|
||||
];
|
||||
|
||||
// Структурная сложность генератора (1 — простейшая форма, 3 — больше действий /
|
||||
// скобки / дроби / переменная в обеих частях). Определяет, какой ВАРИАНТ внутри
|
||||
// темы даётся на выбранном уровне сложности (не просто масштаб чисел).
|
||||
var LEVELS = {
|
||||
// Уравнения: ax+b=c → скобки/обе части/дроби → (ax+b)/c=d
|
||||
'lin-basic': 1, 'lin-paren': 2, 'lin-both-sides': 2, 'lin-frac-denom': 2,
|
||||
'lin-coef-frac': 2, 'lin-paren-both': 3, 'lin-frac-eq': 3,
|
||||
// Пропорции
|
||||
'prop-x-right': 1, 'prop-x-left': 1, 'prop-x-denom': 2,
|
||||
// Проценты
|
||||
'pct-of': 1, 'pct-what': 2, 'pct-whole': 2,
|
||||
// Упрощение
|
||||
'simp-like': 1, 'simp-expand': 2,
|
||||
// Степени
|
||||
'pow-eval': 1, 'pow-mult': 2, 'pow-pow': 3,
|
||||
// Формулы сокр. умножения
|
||||
'sq-sum': 2, 'sq-diff': 2, 'diff-sq': 3,
|
||||
// Неравенства (смена знака — сложнее)
|
||||
'ineq-lt': 1, 'ineq-ge': 1, 'ineq-flip': 3,
|
||||
// Квадратные
|
||||
'quad-diff': 2, 'quad-factored': 3,
|
||||
// Прогрессии
|
||||
'prog-arith-term': 2, 'prog-geom-term': 3,
|
||||
// Геометрия — Углы
|
||||
'ang-adjacent': 1, 'ang-triangle': 2, 'ang-exterior': 2,
|
||||
// Геометрия — Пифагор
|
||||
'pyth-hyp': 2, 'pyth-leg': 3,
|
||||
// Геометрия — Площади
|
||||
'area-square': 1, 'area-rect': 1, 'area-triangle': 2
|
||||
};
|
||||
GENERATORS.forEach(function (g) { g.level = LEVELS[g.id] || 1; });
|
||||
|
||||
function get(id) {
|
||||
for (var i = 0; i < GENERATORS.length; i++) if (GENERATORS[i].id === id) return GENERATORS[i];
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user