From e9bb9ae88d957547ac4bb54a49679d1f870ba1d7 Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 10 Nov 2026 16:12:29 +0100 Subject: [PATCH] Plan des corrections : sortie, largeur du tutoriel, notation de l'ordinateur Co-Authored-By: Claude Opus 5.5 --- docs/plans/2026-11-10-corrections.md | 56 ++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 docs/plans/2026-11-10-corrections.md diff --git a/docs/plans/2026-11-10-corrections.md b/docs/plans/2026-11-10-corrections.md new file mode 100644 index 0000000..7238081 --- /dev/null +++ b/docs/plans/2026-11-10-corrections.md @@ -0,0 +1,56 @@ +# Corrections : saisie de la sortie, largeur du tutoriel, notation de l'ordinateur + +- **Date** : 2026-11-10 +- **Étape** : recette de l'étape 1 (après 1e) +- **Statut** : en cours +- **Exécutant** : sous-agent general-purpose, dans un worktree + +## Objectif + +Corriger trois défauts relevés à la recette : un ordre de saisie refusé pendant +la sortie des pions, l'étape 6 du tutoriel moins large que les autres sur le +Fairphone 4, et la ligne « L'ordinateur a joué … » écrite à partir des +demi-coups au lieu de la notation du moteur. + +## Consignes + +1. **Saisie de la sortie (prioritaire).** Avec un 6-1 en sortie, 6/off avant + 1/off est refusé alors que 1/off puis 6/off passe (position + BQAACAIAAAAAAA, « Jouer à partir d'ici »). Trouver la cause dans la chaîne + de saisie demi-coup par demi-coup (`nextHalfMoves` dans game.ts, + `engine_check_half_moves`, l'adaptateur). Le moteur reste la seule autorité + (ADR 0007) : un défaut côté C se corrige dans `engine/engine.c`, jamais dans + `engine/gnubg/`, avec un test dans `tests/test_engine.sh`, en comparant aux + coups légaux de gnubg pour les deux ordres. Ajouter un test (unitaire ou + scénario Gherkin) qui joue les deux ordres sur le vrai moteur. Chercher et + tester les cas voisins : dé plus grand que la flèche la plus haute, doubles + en sortie. +2. **Largeur de l'étape 6 du tutoriel.** Mesurer dans `make test-browser` la + largeur du plateau et de la colonne de texte à chaque étape (écrans + d'explication et « à vous » : départ, refusé, réussi) en 412×915, 915×412 + et 844×320. Ajouter à la recette automatique la règle : même largeur de + plateau à toutes les étapes pour une taille d'écran donnée. Trouver la + cause et la corriger ; si rien ne se reproduit, le dire avec les mesures. +3. **Notation du coup de l'ordinateur.** La ligne « L'ordinateur a joué … » + utilise la notation du moteur, comme le bilan, l'analyse et la feuille du + maître. Tester que le même coup s'écrit pareil sur l'écran de jeu et dans + l'analyse. + +Contraintes : CSP stricte (aucun `.style.`), aucune nouvelle dépendance, +`-j2` au plus, moteur recompilé une seule fois et seulement s'il change ; +vérifier avec `docker ps` qu'aucun test navigateur ne tourne avant +`make test-browser`. + +## Critères de réussite + +- `make lint`, `make test` et `make test-browser` (suite complète) passent. +- Un test sur le vrai moteur joue 6/off puis 1/off et 1/off puis 6/off dans + la position BQAACAIAAAAAAA, et les cas voisins. +- La recette automatique vérifie la largeur constante du plateau du tutoriel. +- Un test compare la notation du coup de l'ordinateur sur l'écran de jeu et + dans l'analyse. +- Branche `corrections-sortie-tutoriel` poussée, sans MR. + +## Résultat + +À remplir à la clôture.