From 949bfd952e72d8e3e106950b878ae0efe2d35f8a Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 3 Nov 2026 07:00:38 +0100 Subject: [PATCH] =?UTF-8?q?Plan=20:=20saisie=20du=20coup,=20videau=20confi?= =?UTF-8?q?rm=C3=A9,=20pages=20de=20test=20retir=C3=A9es?= 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-saisie-du-coup.md | 65 +++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/plans/2026-11-03-saisie-du-coup.md diff --git a/docs/plans/2026-11-03-saisie-du-coup.md b/docs/plans/2026-11-03-saisie-du-coup.md new file mode 100644 index 0000000..219bb4f --- /dev/null +++ b/docs/plans/2026-11-03-saisie-du-coup.md @@ -0,0 +1,65 @@ +# Saisie du coup, videau confirmé, pages de test du moteur retirées + +- **Date** : 2026-11-03 +- **Étape** : 0e (retours du premier test de Pierre sur le téléphone) +- **Statut** : en cours +- **Exécutant** : sous-agent general-purpose, dans un worktree + +## Objectif + +Rendre la saisie du coup aussi confortable que dans CBG, d'après les retours de +Pierre du 2026-11-03 (points 1, 6, 7, 8, 9 et 11 de son message), et retirer du +site les pages de test du moteur. + +## Consignes + +Règles de code : ADR 0007 (domaine pur, aucune règle de backgammon +réimplémentée : tout vient du moteur via le domaine). Glossaire et scénarios : +ADR 0008 (chaque comportement visible a son scénario Gherkin dans +`docs/scenarios/`, chaque nouveau terme sa fiche). Aucune nouvelle dépendance. + +1. **Pages de test du moteur retirées** (« supprimer la partie test du moteur + totalement ») : plus de `/moteur/` sur le site ni dans `make deploy`. + `make bench` (mesure sous Node) reste : déplacer ce dont il a besoin hors de + `web/`. Mettre à jour `tests/test_site.sh`, le Makefile, `deploy/`, le + service worker, `docs/guide-test-etape-0.md` et ajouter un amendement daté à + l'ADR 0009. +2. **Un seul coup possible, le pion avance** : quand le joueur touche un pion + (ou une case) et qu'une seule case d'arrivée est possible pour ce pion, le + demi-coup est joué aussitôt, sans second toucher. S'il y en a plusieurs, la + sélection actuelle reste. +3. **Coup à valider, annulable** : quand tous les demi-coups sont joués (ou + qu'aucun autre n'est possible), le coup n'est pas envoyé tout de suite. Le + joueur le valide en touchant ses dés (ou un bouton « Valider »). Tant qu'il + ne l'a pas validé, « Annuler » défait le dernier demi-coup, un par un. Le + journal d'événements ne reçoit `MovePlayed` qu'à la validation. +4. **Dés joués marqués** : chaque dé déjà utilisé par un demi-coup est + visiblement estompé. Pour un double, quatre dés, marqués un par un. +5. **Dés de l'adversaire touchables** : toucher la zone des dés de l'un ou + l'autre côté du plateau lance les dés quand le joueur peut lancer (et valide + le coup en attente de validation). +6. **Confirmation du videau** : toucher le videau ou « Doubler » ouvre une + confirmation courte (« Doubler à 2 ? L'ordinateur pourra prendre ou + passer. » : Doubler / Annuler) avant d'envoyer le double. + +Tests : scénarios Gherkin mis à jour ou ajoutés (validation du coup, annulation +demi-coup par demi-coup, confirmation du videau), tests unitaires, et +`tests/browser/play.mjs` adapté (Playwright est validé par Pierre). Lancer +`make lint`, `make test` et `make test-browser`. + +Rapporter : ce qui a été fait, les écarts, les résultats des trois commandes, +et un brouillon de description de MR (7 sections, voir `docs/organisation.md`). +Commits fréquents sur la branche du worktree ; ne pas pousser, ne pas ouvrir de +MR : la session principale s'en charge. + +## Critères de réussite + +- `make lint`, `make test` et `make test-browser` passent. +- Dans le navigateur : un pion à destination unique avance en un toucher ; un + coup complet attend la validation ; « Annuler » défait un demi-coup à la + fois ; les dés joués sont estompés ; le videau demande confirmation. +- `https://…/moteur/` n'existe plus dans le site construit (`make site`). + +## Résultat + +À remplir à la clôture.