Denis Defolie 2fe455f5d1 Add pure correction and pedagogy logic with full test coverage
scripts/correction/: AnswerValidator (multiple choice, sentence
correction via tap-the-faulty-word + retype) and DictationAnalyzer
build the CorrectionResult structure from cahier des charges §6.
Dictation analysis aligns words with WordAligner (Wagner-Fischer edit
distance) before any character comparison, so an omitted or added
word doesn't cascade into false errors on every following word.
TextNormalizer handles non-breaking spaces, typographic apostrophes,
and decomposed-vs-composed French accented characters via an
explicit table (GDScript has no built-in NFC/NFD normalization).
Error classification follows the data annotations only (rule_id
present -> grammatical, absent -> unclassified), never a runtime
linguistic guess.

scripts/pedagogy/: DifficultyManager (per-skill difficulty from
recent results), AttemptFlow (3-attempt graduated aid: hint, then
explanation, then reveal, matching exercise-lifecycle.md's second
gap), and ReviewScheduler (the five mastery states from §9, with
session-counted spaced review intervals [1, 3, 6, 12] rather than
wall-clock dates, since a family device's clock isn't trustworthy).

All of it is pure: no scene tree, no clock or RNG read directly,
every effectful input (session number, attempt outcome) is a
parameter. 65 headless tests across both layers, including the
word-omission-doesn't-cascade regression and the full
decouverte -> acquise -> a_reviser -> acquise path.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-11 17:03:14 +02:00

Les Aventuriers des mots

Jeu éducatif de français pour les CE1-CE2 (7-9 ans) : une aventure 2D hors ligne, avec une carte à explorer, un personnage guide, et des exercices de grammaire, d'orthographe et de dictées.

Projet open source, en développement. Statut actuel : squelette technique (voir docs/specs/decisions.md pour les décisions de cadrage et docs/specs/cahier-des-charges.md pour la spécification complète).

Pile technique

  • Godot 4.6 (GDScript typé)
  • Exercices et contenu pédagogique en données JSON, validées au chargement
  • Tests headless (GUT), lint/format GDScript (gdtoolkit)

Démarrer

make setup   # installe Godot (pinné), GUT et gdtoolkit en local, rien n'est commité
make run     # lance le jeu

Commandes

Commande Effet
make setup installe l'outillage (lint, tests, modèles d'export)
make run lance le jeu
make lint / make format analyse statique et formatage GDScript
make validate-data valide les JSON de data/
make test tests headless
make check lint + validate-data + test, à passer avant chaque commit
make export-linux / make export-windows exports dans build/ (à partir de l'étape export)

Structure

  • autoload/ : modules globaux (gestion du jeu, profils, progression, exercices, sauvegardes, audio, réglages)
  • scenes/ : scènes Godot, autonomes et communiquant par signaux
  • scripts/ : logique pure (correction, pédagogie) et chargement des données
  • data/ : contenu pédagogique en JSON, validé contre des schémas
  • assets/ : graphismes et audio (provisoires à ce stade, voir assets/CREDITS.md)
  • tests/ : tests headless (GUT)
  • docs/specs/ : cahier des charges et décisions de cadrage

Licence

Code et contenu sous GNU Affero General Public License v3.

S
Description
Les Aventuriers des mots Jeu éducatif de français du CE1 au CM2 (7-11 ans) : une aventure 2D hors ligne, avec une carte à explorer, un personnage guide, et des exercices de grammaire, d'orthographe et de dictées. Projet open source, en développement. Statut actuel : version 0.9.2, jouable hors ligne sur Linux, Android et dans un navigateur (versions testées à la main), avec des exports Windows, macOS et ChromeOS non encore testés sur matériel — profils, sauvegardes (avec export et restauration dans l'espace adulte), étoiles et collection d'objets, sons et musique, réglages (volumes, taille du texte, animations), tableau de progrès pour l'adulte, trois types d'exercices (choix multiple, correction de phrase, dictée), CE1, CE2, CM1 et CM2 en trois tableaux chacun (homophones, verbes, orthographe des mots), 111 missions. Contenu pédagogique entièrement en brouillon (draft, à valider) et voix des dictées provisoires (voir assets/CREDITS.md ; voir docs/specs/decisions.md pour les décisions de cadrage et docs/specs/cahier-des-charges.md pour la spécification complète).
Readme AGPL-3.0 3.1 MiB
Languages
GDScript 86.9%
Python 7.3%
Shell 4.3%
Makefile 1.5%