5.5 KiB
5.5 KiB
Match, niveaux et réglages (1c)
- Date : 2026-11-03
- Étape : 1c (
docs/etape-1.md) - Statut : fait (2026-11-09), en attente de vérification
- 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.
- 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).
- Adaptateur :
EngineCubeétendu au match (score, longueur, Crawford) ou remplacé par le Match ID, sans casser les appels existants. - 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. - É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é.
- Affichage du score de match et de la partie Crawford sur le plateau.
- 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
2026-11-09, branche match-et-reglages (sur accueil-tutoriel-aide puis
main fusionnées).
Fait
- Moteur (une seule recompilation,
engine.cetengine-cli/main.c) :engine_level_double_decisionetengine_level_take_decisionreprennentComputerTurn(gnubg,play.cl. 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.cl. 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 danstests/test_engine.sh. - 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é dansdocs/glossaire/niveau-de-jeu.md).Game: niveau et match portés parGameStarted, ordinateur parlevelMove/levelDouble/levelTake,GameEnded.matchdonné par le moteur,nextGamepour 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. - Format : événements en version 2, migration testée des journaux de la
version 1 (niveau 2 plis explicite) ; résumé avec
matchfacultatif ; quatre réglages nouveaux avec valeur par défaut. Amendement de l'ADR 0007. - É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. - 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.
- 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 dansbuild/browser-shots/match/).play.mjsadapté 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
matchpour 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).