Files
Ustagammon/docs/plans/2026-11-03-coup-adverse.md
T
2026-11-03 01:37:50 +01:00

3.9 KiB

Montrer le coup que l'ordinateur vient de jouer

  • Date : 2026-11-03
  • Étape : 0d (retour de Pierre sur le plateau publié)
  • Statut : en cours
  • Exécutant : sous-agent general-purpose, dans un worktree isolé

Objectif

Après le coup de l'ordinateur, le joueur voit ce qui a bougé sans lire la notation. Choix de Pierre : animation puis traces.

Consignes

  1. Animation : quand l'ordinateur joue, ses pions glissent un par un, un demi-coup après l'autre (environ 0,4 s chacun), de la case de départ à la case d'arrivée. Un pion frappé part sur la barre de façon visible. Si le système demande moins d'animations (prefers-reduced-motion), pas d'animation : on passe directement aux traces.
  2. Traces : une fois l'animation finie, et jusqu'à la prochaine action du joueur (lancer les dés, doubler, prendre, passer, toucher un pion) :
    • une flèche de chaque case de départ vers sa case d'arrivée ;
    • les pions déplacés entourés ;
    • à la case de départ d'un pion parti, un pion « fantôme » (contour seul) ;
    • un pion frappé signalé sur la barre. Les petits points orange actuels sont remplacés par ces traces.
  3. Bouton « Revoir » à côté des boutons d'action : il rejoue l'animation du dernier coup de l'ordinateur, puis remet les traces. Il disparaît dès que le joueur agit.
  4. Où vit la logique : la liste des demi-coups du dernier coup de l'ordinateur et les positions intermédiaires viennent du domaine (le journal contient déjà MovePlayed avec ses demi-coups ; ajouter si besoin une fonction qui donne la suite des plateaux intermédiaires, à partir du moteur, sans réimplémenter de règle : par exemple checkHalfMoves ou le décodage de position à chaque étape). L'interface ne fait que dessiner. Les garde-fous d'architecture existants doivent passer.
  5. Textes dans app/src/ui/texts.ts ; mots du glossaire.
  6. Scénario (ADR 0008) : ajouter à docs/scenarios/jouer-une-partie.feature un scénario « Voir le coup de l'ordinateur », écrit en intentions (par exemple : quand l'ordinateur a joué, alors son coup vous est montré case par case, et vous pouvez le revoir), avec ses étapes Cucumber sur le domaine.
  7. Tests :
    • tests unitaires de ce qui est calculable hors navigateur (traces et plateaux intermédiaires d'un coup avec et sans pion frappé, coup depuis la barre, sortie de pions) ;
    • make test-browser (tests/browser/play.mjs) : après un coup de l'ordinateur, les flèches et les pions entourés sont présents ; « Revoir » rejoue puis les remet ; tout disparaît à l'action suivante ; capture d'écran coup-adverse ;
    • make lint, make test et make test-browser verts.

Contraintes :

  • CLAUDE.md, ADR 0007, 0008, 0009 : simplicité, pas de framework ni de bibliothèque d'animation (animations CSS ou requestAnimationFrame), identifiants en anglais, commentaires et textes en français ;
  • aucune règle du jeu réimplémentée ;
  • l'animation ne doit pas retarder le moteur ni bloquer la saisie au-delà de sa durée ; le temps de calcul affiché reste celui du moteur ;
  • ne pas publier, ne pas pousser, ne pas créer de merge request ;
  • commits petits, en français, avec la ligne Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>.

Rapport attendu : ce qui a été fait, captures d'écran (chemins), résultat des tests, difficultés, écarts au plan.

Critères de réussite

  • Dans Chromium et Firefox sans interface, après chaque coup de l'ordinateur : animation (ou traces directes en mouvement réduit), traces visibles, « Revoir » fonctionnel, traces effacées à l'action suivante.
  • Le scénario « Voir le coup de l'ordinateur » passe dans make test.
  • make lint, make test et make test-browser passent.

Résultat

À remplir à la clôture.