From a08c997ac17c541a6c4d85601e1e3cb2a1efa1e5 Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 3 Nov 2026 04:57:34 +0100 Subject: [PATCH] =?UTF-8?q?Plan=20coup=20adverse=20:=20r=C3=A9sultat=20des?= =?UTF-8?q?=20deux=20ajouts?= 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-coup-adverse.md | 57 ++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/docs/plans/2026-11-03-coup-adverse.md b/docs/plans/2026-11-03-coup-adverse.md index 9ced53d..395997b 100644 --- a/docs/plans/2026-11-03-coup-adverse.md +++ b/docs/plans/2026-11-03-coup-adverse.md @@ -165,17 +165,56 @@ identique (« revoir »). les mêmes traces reviennent ; une capture `coup-adverse` est prise. La seconde fois, en mouvement réduit, aucune animation ne tourne et les traces reviennent. -- Résultats : `make lint` sans problème ; `make test` 10/10 ; `make - test-browser` vert sous Chromium (coup de l'ordinateur montré 26 fois) et - Firefox (43 fois), sans violation CSP ni erreur dans la page. +**Ajout : aucun coup possible** : +- Domaine : `Game.roll()` ne fait plus passer le tour. `Game.cannotMove()` + dit, d'après `legalMoves` du moteur, que le jet ne permet aucun coup. + `Game.skipTurn()` enregistre alors le coup vide (même événement + `MovePlayed` sans demi-coup qu'avant, format inchangé) ; il est refusé s'il + existe un coup. Le nom `skipTurn` évite la confusion avec « passer » (le + double), qui est `drop` dans le glossaire. +- Interface : bouton « Continuer » (`#skip`), message « Aucun coup possible + avec 6-5. », consigne « Touchez « Continuer » : le tour passe à + l'ordinateur. », dés estompés et barrés (`.die-blocked`, `.die-strike`). + Quand l'ordinateur ne peut pas jouer, ses dés restent barrés avec « L'ordinateur + ne peut pas jouer 5-5. » jusqu'à l'action suivante. Ces deux messages se + déduisent du journal : ils survivent à un rechargement. +- Tests : scénario « Aucun coup possible avec votre jet » (pion sur la barre + face aux six cases tenues, 6-5), tests unitaires `cannotMove`/`skipTurn` + (faux moteur), partie complète adaptée. Dans le navigateur, « Continuer » + a été demandé 1 fois (Chromium) et 3 fois (Firefox) : message et deux dés + barrés vérifiés à chaque fois. Le jet sans coup de l'ordinateur est vérifié + quand il survient (pas survenu dans ces deux parties). + +**Ajout : toucher les dés et le videau** : +- Quand vous pouvez lancer, deux dés « en attente » (faces vides, contour en + pointillés) apparaissent au milieu de la moitié gauche. La moitié droite + garde le dernier jet de l'ordinateur, qui doit rester visible. Quand vous + pouvez doubler (`Game.canDouble()`, comme le bouton), le videau est souligné. +- Les toucher clique le bouton correspondant (`#roll`, `#double`) : mêmes + conditions, même effet. Hors de ces moments, aucune zone n'est posée. +- Zones à toucher : `role="button"`, `aria-label` (« Lancer les dés », + « Doubler »), au moins 88 unités, soit 47 px sur le plateau de 344 px d'un + téléphone de 360 px. Les boutons restent pour le clavier ; les zones n'ont + pas de `tabindex`, pour ne pas doubler l'ordre de tabulation. +- Navigateur : dés touchés 10 fois (Chromium) et 14 fois (Firefox), videau + touché pour doubler, taille et rôle vérifiés ; aucune zone pendant la + saisie d'un coup. + +**Résultats finaux** (dernier commit vérifié) : `make lint` sans problème ; +`make test` 10/10 ; `make test-browser` vert sous Chromium et Firefox, sans +violation CSP ni erreur dans la page. Le coup de l'ordinateur a été montré 21 +et 30 fois. Dans Firefox, un coup revu a frappé deux pions, tous deux signalés sur la +barre. **Limites** : -- Aucune des deux parties du navigateur n'a vu l'ordinateur frapper (0 pion - frappé signalé). L'animation vers la barre n'est donc vérifiée que par le - scénario et les tests unitaires (plateaux et traces), pas dans un - navigateur. -- Firefox a affiché un tour de l'ordinateur à 4,4 s au plus. Ce temps est - mesuré avant l'animation, qui n'y est pour rien : c'est le moteur sous +- Un premier essai de `make test-browser` a échoué dans `docker build` + (« parent snapshot … does not exist »), sans lien avec le code + (probablement une autre construction Docker en parallèle). L'essai suivant + est passé. +- Firefox affiche des tours de l'ordinateur de 3 à 4,4 s au plus. Ce temps + est mesuré avant l'animation, qui n'y est pour rien : c'est le moteur sous Firefox sur le PC de 2011. Chromium : 0,6 s au plus. +- Les dés en attente sont à gauche alors que le jet lancé s'affiche à + droite : c'est un choix d'interface, à revoir avec la charte si besoin. - Sur une case de plus de cinq pions, c'est le cinquième pion dessiné qui glisse (le nombre reste affiché sur la pile).