From 414dfa79f8a07feb63ab52b0509255cc737f69c3 Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Mon, 9 Nov 2026 23:37:36 +0100 Subject: [PATCH] =?UTF-8?q?Plan=201c=20:=20r=C3=A9sultat?= 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-match-et-reglages.md | 59 +++++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/docs/plans/2026-11-03-match-et-reglages.md b/docs/plans/2026-11-03-match-et-reglages.md index b99fd68..86ff681 100644 --- a/docs/plans/2026-11-03-match-et-reglages.md +++ b/docs/plans/2026-11-03-match-et-reglages.md @@ -2,7 +2,7 @@ - **Date** : 2026-11-03 - **Étape** : 1c (`docs/etape-1.md`) -- **Statut** : prévu (après la révision UX et 1b) +- **Statut** : fait (2026-11-09), en attente de vérification - **Exécutant** : sous-agent general-purpose, dans un worktree ## Objectif @@ -44,4 +44,59 @@ appliqué ; les trois commandes passent. ## Résultat -À remplir à la clôture. +2026-11-09, branche `match-et-reglages` (sur `accueil-tutoriel-aide` puis +`main` fusionnées). + +**Fait** + +1. **Moteur** (une seule recompilation, `engine.c` et `engine-cli/main.c`) : + `engine_level_double_decision` et `engine_level_take_decision` reprennent + `ComputerTurn` (gnubg, `play.c` l. 1312-1398 et 1139-1235) : accès au + videau et videau < 4096, pré-filtre « fenêtre de marché » (évaluation sans + videau à un pli de moins, `GetDoublePointDeadCube`), double facultatif + seulement à 0 pli avec plus de 0,001 de gain, réponse au double selon la + décision (castors joués comme une prise). `engine_match_after_game` : + score, fin du match, partie Crawford suivante (`play.c` l. 1817-1820 ; + partie Crawford déjà jouée lue comme gnubg, l. 303 et 4277). engine-cli : + `double`, `take`, `aftergame`, `matchid` étendu aux matchs. Tests dans + `tests/test_engine.sh`. +2. **Domaine** : `Match`, `MatchAfterGame` (`match.ts`), niveaux montrés + (`level.ts` : Débutant beginner, Amateur casual, Intermédiaire + intermediate, Avancé advanced, Expert 0ply, Champion 2ply ; documenté + dans `docs/glossaire/niveau-de-jeu.md`). `Game` : niveau et match portés + par `GameStarted`, ordinateur par `levelMove`/`levelDouble`/`levelTake`, + `GameEnded.match` donné par le moteur, `nextGame` pour la partie suivante. + `EngineCube` étendu au match (vu du joueur au trait) ; le Match ID est + écrit par le moteur, liens de position compris. Chaque partie d'un match + est une partie enregistrée à part. +3. **Format** : événements en version 2, migration testée des journaux de la + version 1 (niveau 2 plis explicite) ; résumé avec `match` facultatif ; + quatre réglages nouveaux avec valeur par défaut. Amendement de l'ADR 0007. +4. **Écran `#/nouvelle-partie`** (charte 1c) : segments partie libre/match, + longueurs 3/5/7/11, phrases et liens Crawford/Jacoby, six barres de + niveau, conseil du maître, barre d'action collée en bas ; choix gardés. + Ouvert par le menu (lien), l'accueil et la fin de partie ; « Partie + suivante » dans un match qui continue. Adresse ajoutée à l'ADR 0013. +5. **Score** : ligne « Match en N points · partie Crawford », pastilles dans + les bandeaux, case « sur N » dans la colonne de commandes en paysage, + texte pour le lecteur d'écran ; videau caché pendant la partie Crawford ; + panneau de fin de partie et de fin de match. +6. **Tests** : `jouer-un-match.feature` (niveau, match en 3 points jusqu'au + bout avec dés imposés, Crawford, Jacoby), `match.test.ts`, tests du + domaine (match, migration), `tests/browser/match.mjs` (écran, match en + 3 points joué par l'interface jusqu'au bout, rechargement en cours de + match ; captures dans `build/browser-shots/match/`). `play.mjs` adapté au + passage par l'écran « Nouvelle partie ». + +**Écarts** + +- Le moteur C a changé (fonctions ajoutées, rien de gnubg modifié). +- Le « conseil du maître » n'est qu'un réglage gardé : il n'existe pas + encore (1d). +- « Mes parties » liste chaque partie d'un match séparément, sans afficher + le match ; le résumé porte pourtant `match` pour le faire plus tard. +- Le numéro de la partie dans le match n'est pas gardé (SGF : `game:0`). +- Longueur par défaut d'un match : 5 points (la charte ne la fixe pas). + +**Suites** : affichage du match dans « Mes parties » ; recette design des +captures ; essai sur le Fairphone 4 (temps du niveau Champion).