From 7fe3d53034c6a906ee91956b152ca08cfd7a35be Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 3 Nov 2026 15:14:51 +0100 Subject: [PATCH] =?UTF-8?q?Plans=201c=20(match,=20niveaux,=20r=C3=A9glages?= =?UTF-8?q?)=20et=201d=20(conseil=20du=20ma=C3=AEtre)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/plans/2026-11-03-conseil-du-maitre.md | 60 ++++++++++++++++++++++ docs/plans/2026-11-03-match-et-reglages.md | 47 +++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 docs/plans/2026-11-03-conseil-du-maitre.md create mode 100644 docs/plans/2026-11-03-match-et-reglages.md diff --git a/docs/plans/2026-11-03-conseil-du-maitre.md b/docs/plans/2026-11-03-conseil-du-maitre.md new file mode 100644 index 0000000..64dc46c --- /dev/null +++ b/docs/plans/2026-11-03-conseil-du-maitre.md @@ -0,0 +1,60 @@ +# Conseil du maître (1d) + +- **Date** : 2026-11-03 +- **Étape** : 1d (`docs/etape-1.md`) +- **Statut** : prévu (après 1c) +- **Exécutant** : sous-agent general-purpose, dans un worktree + +## Objectif + +Le coach bienveillant, « mis en avant mais discret » (Pierre, 2026-11-03) : +après chaque coup et chaque décision de videau du joueur, jamais avant +(ADR 0011), une appréciation et une phrase du maître fondées sur les chiffres +du moteur. + +## Références + +- ADR 0011 ; maquette « conseil du maître après le coup » du canevas + https://claude.ai/artifact/CQw6vbDpi6XQqVWQa4sANe ; règles de la charte + (`docs/identite/charte/`, dont interaction.md) ; la ligne réservée de 44 px + de la révision UX. +- Moteur : `analyseMove`, `analyseCube`, `luck`, seuils `SKILL_THRESHOLDS` + (gnubg : 0,03 / 0,06 / 0,12). + +## Consignes + +1. **Analyse en arrière-plan** : après la validation d'un coup (ou une + décision de videau), l'analyse à 2 plis part dans le Worker sans retarder le + tour de l'ordinateur ; son résultat est rattaché au coup dans le journal + (événement d'analyse rétrocompatible, ou cache séparé justifié) pour servir + au bilan (1e) sans recalcul. +2. **Ligne du maître** : icône d'appréciation, mot en couleur (« Bon coup. », + « Imprécision. », « Erreur. », « Gaffe. » : correspondance avec les seuils + de gnubg documentée), phrase courte en italique, chevron. Toucher ouvre la + feuille d'explication : coup joué et meilleur coup montrés sur le plateau + (pions animés, ADR 0011 « comparaison visuelle »), écart d'équité seulement + sur demande, lien vers la fiche du glossaire du concept en jeu si le moteur + permet de le déterminer, sinon rien. +3. **Phrases du maître** : gabarits versionnés en français dans une source + unique sous `docs/` (CC BY-SA 4.0), ton encourageant, jamais culpabilisant ; + elles ne citent que des faits du moteur (coup recommandé, rang, pions + frappés, écart) : aucune explication inventée. Première version à faire + valider par Pierre (ton). +4. **Discret** : rien n'apparaît pendant que le joueur réfléchit ; la ligne + s'efface à l'action suivante ; désactivable (réglage de 1c et menu). +5. **Videau** : même traitement pour doubler, ne pas doubler, prendre, passer. +6. Scénarios Gherkin (bon coup, erreur avec meilleur coup montré, conseil + désactivé, décision de videau commentée) avec positions et dés imposés ; + tests unitaires des gabarits (chaque gabarit rendu sur des analyses réelles + du moteur). `make lint`, `make test`, `make test-browser`, captures pour la + recette design. + +## Critères de réussite + +Après une erreur volontaire dans une position connue, la ligne du maître dit +« Erreur. », nomme le coup recommandé par le moteur et le montre sur demande ; +le tour de l'ordinateur n'est pas retardé ; les trois commandes passent. + +## Résultat + +À remplir à la clôture. diff --git a/docs/plans/2026-11-03-match-et-reglages.md b/docs/plans/2026-11-03-match-et-reglages.md new file mode 100644 index 0000000..b99fd68 --- /dev/null +++ b/docs/plans/2026-11-03-match-et-reglages.md @@ -0,0 +1,47 @@ +# Match, niveaux et réglages (1c) + +- **Date** : 2026-11-03 +- **Étape** : 1c (`docs/etape-1.md`) +- **Statut** : prévu (après la révision UX et 1b) +- **Exécutant** : sous-agent general-purpose, dans un worktree + +## Objectif + +Choisir sa partie : partie libre ou match en N points, avec les règles de +Crawford et de Jacoby, contre l'ordinateur au niveau voulu. + +## Consignes + +ADR 0007, 0008. Le moteur expose depuis 1a les niveaux de gnubg +(`levelMove`, `levelCubeDecision`) et accepte les matchs dans son API C. + +1. **Domaine** : longueur de match, score, règle de Crawford (partie Crawford + et suivantes, calculées par le moteur via le Match ID), règle de Jacoby en + partie libre ; enchaînement des manches d'un match jusqu'à sa fin ; le + journal d'événements reste rétrocompatible (les parties existantes se + rechargent). +2. **Adaptateur** : `EngineCube` étendu au match (score, longueur, Crawford) + ou remplacé par le Match ID, sans casser les appels existants. +3. **Niveau de l'ordinateur** : ses coups et ses décisions de videau au niveau + choisi. Reprendre de `ComputerTurn` (gnubg, `play.c`) les règles de + déroulement non reprises en 1a : pré-filtre « fenêtre de marché » et double + facultatif à 0 pli, avec citation des sources. +4. **Écran de nouvelle partie** (maquettes de la session « identité » si + disponibles, sinon sobre et conforme à la charte) : type de partie, niveau + (noms montrés au joueur à proposer simplement : Débutant, Amateur, + Intermédiaire, Avancé, Expert, Champion — correspondance avec les niveaux + de gnubg documentée), conseil du maître activé ou non. Par défaut : partie + libre, Intermédiaire, conseil activé. Le réglage est mémorisé. +5. Affichage du score de match et de la partie Crawford sur le plateau. +6. Scénarios Gherkin (match en 3 points jusqu'au bout avec dés imposés, + Crawford, Jacoby) et fiches du glossaire (match, Crawford, Jacoby si + absentes). `make lint`, `make test`, `make test-browser` (un match court). + +## Critères de réussite + +Un match en 3 points se joue jusqu'au bout, au niveau choisi, avec Crawford +appliqué ; les trois commandes passent. + +## Résultat + +À remplir à la clôture.