Coup de l'ordinateur montré, aucun coup possible, dés et videau touchables #19
@@ -21,6 +21,7 @@ garde-fous d'architecture (0d.1), déploiement sur https://ustagammon.sans.pub.
|
||||
| Sous-étape | Contenu | État | Plan |
|
||||
| --- | --- | --- | --- |
|
||||
| 0d.2 | Plateau minimal jouable (PWA hors ligne), publié ; reste la vérification avec Pierre sur le Fairphone 4 (`docs/guide-test-etape-0.md`, section « Étape 0d ») | 🔄 | |
|
||||
| 0d.2+ | Montrer le coup de l'ordinateur (animation, traces, « Revoir ») : retour de Pierre | 🔄 | `plans/2026-11-03-coup-adverse.md` |
|
||||
|
||||
**Critère de fin** : une partie complète jouée sur le Fairphone 4, moins de 2 s
|
||||
par coup de l'IA en niveau standard, tous les tests au vert.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user