Trois retours de Pierre après ses premiers essais du plateau publié :
« Il serait bien qu'on puisse voir ce qu'a fait l'autre joueur après avoir fait son coup. » Jusqu'ici, seuls un texte (« L'ordinateur a joué 5-6 : 24/18 18/13 ») et de petits points orange signalaient le coup. Pierre a choisi la solution « animation puis traces ».
« Il serait bien de voir aussi lorsqu'on n'a aucun dé qui fonctionne », pour que la partie ne passe pas à la suite sans action de l'utilisateur, comme dans CBG. Quand le jet ne permettait aucun coup, le tour passait aussitôt à l'ordinateur sans explication.
« Il serait bien qu'en cliquant sur les dés ça les lance. Idem pour le videau. »
Quoi
Coup de l'ordinateur montré :
ses pions glissent un par un, 0,4 s par demi-coup. Un pion frappé glisse en même temps vers la barre ;
il reste ensuite des traces en laiton, la couleur « dernier coup » de la charte : une flèche par demi-coup, les pions arrivés entourés, un pion fantôme à la case de départ et un cercle en pointillés autour des pions frappés sur la barre ;
un bouton « Revoir » rejoue l'animation puis remet les traces. Traces et bouton disparaissent à la première action du joueur ;
avec le réglage de mouvement réduit du système, les traces apparaissent directement, sans animation ;
le temps affiché reste celui du moteur, mesuré avant l'animation.
Aucun coup possible :
si ton jet ne permet aucun coup, les dés restent affichés, estompés et barrés, avec « Aucun coup possible avec 6-5. » et un bouton « Continuer ». Le tour ne passe à l'ordinateur que quand tu le touches ;
si l'ordinateur ne peut pas jouer, ses dés barrés et « L'ordinateur ne peut pas jouer 5-5. » restent visibles jusqu'à ta prochaine action ;
ces messages se recalculent depuis le journal et survivent à un rechargement.
Dés et videau touchables :
quand tu peux lancer, deux dés « en attente » apparaissent dans la moitié gauche du plateau. Les toucher lance les dés ;
quand tu peux doubler, le videau est souligné, et le toucher propose le double ;
le reste du temps, les toucher ne fait rien. Les boutons restent ;
les zones touchables font 47 px sur un écran de 360 px, avec role="button" et un aria-label.
Domaine :
Game.lastMoveSteps() donne les plateaux intermédiaires du dernier coup et les pions frappés. Les plateaux viennent du moteur, sans règle réimplémentée ;
cannotMove() et skipTurn() : passer son tour n'est accepté que si le moteur ne trouve aucun coup. Le nom skipTurn évite toute confusion avec « passer », qui désigne le refus d'un double (drop dans le glossaire) ;
le format du journal d'événements ne change pas.
Comment
Travail délégué à un sous-agent selon un plan écrit avant la délégation, auquel les deux autres demandes ont été ajoutées en cours de route. Le plan est supprimé à la clôture et son résultat repris ici. L'agent a été interrompu une fois par une limite de quota, puis a repris.
La branche a été fusionnée avec main, qui venait de recevoir la charte graphique (MR !18) : les traces prennent le laiton de la charte, et les dés en attente et le videau touchable la brique. Seul conflit : une ligne de la feuille de route.
Tests :
deux nouveaux scénarios Gherkin dans docs/scenarios/jouer-une-partie.feature, exécutés sur le domaine et le vrai moteur avec des dés imposés : « Voir le coup de l'ordinateur » (son seul coup frappe ton pion) et « Aucun coup possible avec votre jet » ;
tests unitaires : move-steps.test.ts, nouveau, sur le vrai moteur (coup simple, pion frappé, rentrée depuis la barre, sortie de pions) ; les traces dans ui.test.ts ; cannotMove et skipTurn dans game.test.ts ;
make test-browser, relancé par la session principale après la fusion avec la charte :
Chromium
Firefox
Coup de l'ordinateur montré puis effacé à l'action suivante
24 fois
39 fois
« Revoir », animé puis en mouvement réduit
oui
oui
« Continuer » demandé
6 fois
4 fois
Dés lancés en les touchant, videau touché pour doubler
12 fois, oui
19 fois, oui
CSP, erreurs dans la page
aucune violation, aucune erreur
aucune violation, aucune erreur
make lint et make test (10/10) passent.
Choix et compromis
Animation intégrée au navigateur, sans bibliothèque. L'animation ne retarde pas le moteur.
Dés en attente dans la moitié gauche : la moitié droite garde le dernier jet de l'ordinateur visible.
Zones touchables hors de l'ordre de tabulation : elles doublent les boutons, et le clavier passe par les boutons. À trancher par Pierre : les ajouter à la tabulation se fait en une ligne.
Toucher le videau double sans confirmation, comme le bouton « Doubler ». Question posée à Pierre, sans réponse pour l'instant.
Risques et déploiement
Jet sans coup de l'ordinateur : il est couvert par le scénario Gherkin et les tests unitaires, mais il n'est survenu dans aucune partie jouée en navigateur. Il n'est donc pas vérifié de bout en bout dans l'interface.
Firefox sur le PC de 2011 : un tour de l'ordinateur y monte à environ 3 s, contre 0,5 s sous Chromium, à cause du moteur et non de l'animation. Le téléphone (Chrome) reste sous les 2 s.
Retour arrière : redéployer l'image précédente dans CapRover, ou annuler le commit de fusion.
Comment vérifier
git switch main && git pull
make setup && make build
make lint && make test && make test-browser
Puis https://ustagammon.sans.pub sur le téléphone : laisser l'ordinateur jouer, toucher « Revoir », toucher les dés pour lancer, et le videau pour doubler.
Hors périmètre
La fluidité générale de la partie (bouton « Nouvelle partie » toujours visible, interruptions inutiles), autre demande de Pierre, inscrite à la feuille de route.
Les retouches du dessin du plateau pour rejoindre la charte (filet des pions, numéros sur le cadre, videau sur la barre…), relevées par le designer UI dans la MR !18.
## Pourquoi
Trois retours de Pierre après ses premiers essais du plateau publié :
1. « Il serait bien qu'on puisse voir ce qu'a fait l'autre joueur après avoir fait son coup. » Jusqu'ici, seuls un texte (« L'ordinateur a joué 5-6 : 24/18 18/13 ») et de petits points orange signalaient le coup. Pierre a choisi la solution « animation puis traces ».
2. « Il serait bien de voir aussi lorsqu'on n'a aucun dé qui fonctionne », pour que la partie ne passe pas à la suite sans action de l'utilisateur, comme dans CBG. Quand le jet ne permettait aucun coup, le tour passait aussitôt à l'ordinateur sans explication.
3. « Il serait bien qu'en cliquant sur les dés ça les lance. Idem pour le videau. »
## Quoi
**Coup de l'ordinateur montré :**
- ses pions glissent un par un, 0,4 s par demi-coup. Un pion frappé glisse en même temps vers la barre ;
- il reste ensuite des traces en laiton, la couleur « dernier coup » de la charte : une flèche par demi-coup, les pions arrivés entourés, un pion fantôme à la case de départ et un cercle en pointillés autour des pions frappés sur la barre ;
- un bouton « Revoir » rejoue l'animation puis remet les traces. Traces et bouton disparaissent à la première action du joueur ;
- avec le réglage de mouvement réduit du système, les traces apparaissent directement, sans animation ;
- le temps affiché reste celui du moteur, mesuré avant l'animation.
**Aucun coup possible :**
- si ton jet ne permet aucun coup, les dés restent affichés, estompés et barrés, avec « Aucun coup possible avec 6-5. » et un bouton « Continuer ». Le tour ne passe à l'ordinateur que quand tu le touches ;
- si l'ordinateur ne peut pas jouer, ses dés barrés et « L'ordinateur ne peut pas jouer 5-5. » restent visibles jusqu'à ta prochaine action ;
- ces messages se recalculent depuis le journal et survivent à un rechargement.
**Dés et videau touchables :**
- quand tu peux lancer, deux dés « en attente » apparaissent dans la moitié gauche du plateau. Les toucher lance les dés ;
- quand tu peux doubler, le videau est souligné, et le toucher propose le double ;
- le reste du temps, les toucher ne fait rien. Les boutons restent ;
- les zones touchables font 47 px sur un écran de 360 px, avec `role="button"` et un `aria-label`.
**Domaine :**
- `Game.lastMoveSteps()` donne les plateaux intermédiaires du dernier coup et les pions frappés. Les plateaux viennent du moteur, sans règle réimplémentée ;
- `cannotMove()` et `skipTurn()` : passer son tour n'est accepté que si le moteur ne trouve aucun coup. Le nom `skipTurn` évite toute confusion avec « passer », qui désigne le refus d'un double (`drop` dans le glossaire) ;
- le format du journal d'événements ne change pas.
## Comment
Travail délégué à un sous-agent selon un plan écrit avant la délégation, auquel les deux autres demandes ont été ajoutées en cours de route. Le plan est supprimé à la clôture et son résultat repris ici. L'agent a été interrompu une fois par une limite de quota, puis a repris.
La branche a été fusionnée avec `main`, qui venait de recevoir la charte graphique (MR !18) : les traces prennent le laiton de la charte, et les dés en attente et le videau touchable la brique. Seul conflit : une ligne de la feuille de route.
**Tests :**
- deux nouveaux scénarios Gherkin dans `docs/scenarios/jouer-une-partie.feature`, exécutés sur le domaine et le vrai moteur avec des dés imposés : « Voir le coup de l'ordinateur » (son seul coup frappe ton pion) et « Aucun coup possible avec votre jet » ;
- tests unitaires : `move-steps.test.ts`, nouveau, sur le vrai moteur (coup simple, pion frappé, rentrée depuis la barre, sortie de pions) ; les traces dans `ui.test.ts` ; `cannotMove` et `skipTurn` dans `game.test.ts` ;
- `make test-browser`, relancé par la session principale après la fusion avec la charte :
| | Chromium | Firefox |
| --- | --- | --- |
| Coup de l'ordinateur montré puis effacé à l'action suivante | 24 fois | 39 fois |
| « Revoir », animé puis en mouvement réduit | oui | oui |
| « Continuer » demandé | 6 fois | 4 fois |
| Dés lancés en les touchant, videau touché pour doubler | 12 fois, oui | 19 fois, oui |
| CSP, erreurs dans la page | aucune violation, aucune erreur | aucune violation, aucune erreur |
`make lint` et `make test` (10/10) passent.
## Choix et compromis
- **Animation intégrée au navigateur**, sans bibliothèque. L'animation ne retarde pas le moteur.
- **Dés en attente dans la moitié gauche** : la moitié droite garde le dernier jet de l'ordinateur visible.
- **Zones touchables hors de l'ordre de tabulation** : elles doublent les boutons, et le clavier passe par les boutons. À trancher par Pierre : les ajouter à la tabulation se fait en une ligne.
- **Toucher le videau double sans confirmation**, comme le bouton « Doubler ». Question posée à Pierre, sans réponse pour l'instant.
## Risques et déploiement
- **Jet sans coup de l'ordinateur** : il est couvert par le scénario Gherkin et les tests unitaires, mais il n'est survenu dans aucune partie jouée en navigateur. Il n'est donc pas vérifié de bout en bout dans l'interface.
- **Firefox sur le PC de 2011** : un tour de l'ordinateur y monte à environ 3 s, contre 0,5 s sous Chromium, à cause du moteur et non de l'animation. Le téléphone (Chrome) reste sous les 2 s.
Retour arrière : redéployer l'image précédente dans CapRover, ou annuler le commit de fusion.
## Comment vérifier
```
git switch main && git pull
make setup && make build
make lint && make test && make test-browser
```
Puis https://ustagammon.sans.pub sur le téléphone : laisser l'ordinateur jouer, toucher « Revoir », toucher les dés pour lancer, et le videau pour doubler.
## Hors périmètre
- La fluidité générale de la partie (bouton « Nouvelle partie » toujours visible, interruptions inutiles), autre demande de Pierre, inscrite à la feuille de route.
- Les retouches du dessin du plateau pour rejoindre la charte (filet des pions, numéros sur le cadre, videau sur la barre…), relevées par le designer UI dans la MR !18.
Generated with Claude Code https://claude.com/claude-code
Le domaine donne le dernier coup demi-coup par demi-coup (plateaux
intermédiaires du moteur, pions frappés lus sur la barre) ; l'interface
fait glisser les pions puis laisse flèches, pions entourés et fantômes
jusqu'à l'action suivante. Scénario « Voir le coup de l'ordinateur »,
tests unitaires et test dans le navigateur.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le tour du joueur ne passe plus tout seul quand son jet ne permet aucun
coup : le domaine le dit (cannotMove) et le joueur laisse passer son tour
(skipTurn, bouton « Continuer »). Les dés d'un jet sans coup, du joueur
comme de l'ordinateur, restent affichés barrés avec un message jusqu'à
l'action suivante. Scénario « Aucun coup possible avec votre jet ».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Quand vous pouvez lancer, vos dés en attente apparaissent dans la moitié
gauche du plateau ; quand vous pouvez doubler, le videau est souligné.
Les toucher fait comme les boutons, qui restent. Cibles d'au moins
44 px, avec rôle et nom accessibles.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fusion du travail du sous-agent (branche coup-adverse-travail) avec la charte
graphique de main ; plan supprimé à la clôture, son résultat est repris dans
la merge request.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pierre
merged commit 55f383dc10 into main2026-11-03 04:06:50 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Pourquoi
Trois retours de Pierre après ses premiers essais du plateau publié :
Quoi
Coup de l'ordinateur montré :
Aucun coup possible :
Dés et videau touchables :
role="button"et unaria-label.Domaine :
Game.lastMoveSteps()donne les plateaux intermédiaires du dernier coup et les pions frappés. Les plateaux viennent du moteur, sans règle réimplémentée ;cannotMove()etskipTurn(): passer son tour n'est accepté que si le moteur ne trouve aucun coup. Le nomskipTurnévite toute confusion avec « passer », qui désigne le refus d'un double (dropdans le glossaire) ;Comment
Travail délégué à un sous-agent selon un plan écrit avant la délégation, auquel les deux autres demandes ont été ajoutées en cours de route. Le plan est supprimé à la clôture et son résultat repris ici. L'agent a été interrompu une fois par une limite de quota, puis a repris.
La branche a été fusionnée avec
main, qui venait de recevoir la charte graphique (MR !18) : les traces prennent le laiton de la charte, et les dés en attente et le videau touchable la brique. Seul conflit : une ligne de la feuille de route.Tests :
docs/scenarios/jouer-une-partie.feature, exécutés sur le domaine et le vrai moteur avec des dés imposés : « Voir le coup de l'ordinateur » (son seul coup frappe ton pion) et « Aucun coup possible avec votre jet » ;move-steps.test.ts, nouveau, sur le vrai moteur (coup simple, pion frappé, rentrée depuis la barre, sortie de pions) ; les traces dansui.test.ts;cannotMoveetskipTurndansgame.test.ts;make test-browser, relancé par la session principale après la fusion avec la charte :make lintetmake test(10/10) passent.Choix et compromis
Risques et déploiement
Retour arrière : redéployer l'image précédente dans CapRover, ou annuler le commit de fusion.
Comment vérifier
Puis https://ustagammon.sans.pub sur le téléphone : laisser l'ordinateur jouer, toucher « Revoir », toucher les dés pour lancer, et le videau pour doubler.
Hors périmètre
Generated with Claude Code https://claude.com/claude-code