25 Commits
Author SHA1 Message Date
Pierre MARTINandClaude Opus 5.5 196ccd4b9f Fusion de main (révision UX) ; Mes parties dans le menu, reprise sans rechargement
« Reprendre l'ancienne » relit l'ancienne partie dans le stockage par son
identifiant et supprime la nouvelle (GameSession).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 20:17:53 +01:00
Pierre MARTINandClaude Opus 5.5 4d9a6d69db Test navigateur : menu essayé au moment de lancer les dés ; menu ouvert devant un panneau
Le panneau du double de l'ordinateur ne s'affiche qu'en paysage (en portrait,
la barre d'actions pose la question) : la rotation change alors l'écran, à
raison. Le test ouvrait le menu juste après un coup, parfois pendant un double.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 20:00:24 +01:00
Pierre MARTIN c04479c18f Fusion de main dans revision-ux 2026-11-03 15:49:12 +01:00
Pierre MARTINandClaude Opus 5.5 b8c2997ec0 Recette design : consigne en texte nu, cases d'arrivée en triangle et anneau, flèches sous les pions, panneau de fin structuré
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:24:03 +01:00
Pierre MARTINandClaude Opus 5.5 2c56b0a2b1 Recette automatisée de la révision UX dans make test-browser ; chiffres du plateau à 13 px au moins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:17:16 +01:00
Pierre MARTINandClaude Opus 5.5 091cb4a8b0 Fusion de main dans moteur-analyse ; plan 1a clos
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:06:09 +01:00
Pierre MARTINandClaude Opus 5.5 c6649f94c0 Révision UX : portrait stable, bandeaux, menu, paysage plateau = écran, vibrations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:05:27 +01:00
Pierre MARTINandClaude Opus 5.5 6b5e0d2b5e Mesure : temps de l'analyse du coup joué à 2 plis
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:00:39 +01:00
Pierre MARTINandClaude Opus 5.5 1f324cfef0 Confirmation du videau : boutons hors de la classe actions (mode paysage)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 07:12:08 +01:00
Pierre MARTINandClaude Opus 5.5 2d934529d5 Saisie du coup : pion à destination unique, validation, Annuler, dés estompés, videau confirmé
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 07:04:26 +01:00
Pierre MARTINandClaude Opus 5.5 b4d79576a7 Fin de l'étape 0 : guides temporaires supprimés, paysage dès la rotation (ADR 0012)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 07:02:02 +01:00
Pierre MARTINandClaude Opus 5.5 ce2bd46ec3 Pages de test du moteur retirées du site ; make bench garde sa mesure
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 07:00:38 +01:00
Pierre MARTINandClaude Opus 5.5 9bfc7efb9e Coup de l'ordinateur montré, aucun coup possible, dés et videau touchables
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>
2026-11-03 05:06:09 +01:00
Pierre MARTINandClaude Opus 5.5 984d6cf060 Toucher les dés pour les lancer, le videau pour doubler
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>
2026-11-03 02:11:08 +01:00
Pierre MARTINandClaude Opus 5.5 39c85172b4 Aucun coup possible : le joueur continue lui-même
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>
2026-11-03 02:07:27 +01:00
Pierre MARTINandClaude Opus 5.5 62dfc1922a Chiffres alignés sur le plateau et dans le compte de points
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 02:07:18 +01:00
Pierre MARTINandClaude Opus 5.5 27ae0285a0 Charte appliquée à l'interface : couleurs, composants, mises en page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 01:58:16 +01:00
Pierre MARTINandClaude Opus 5.5 5d3dedcc90 Icônes et logo de la charte, copiés depuis docs/identite/logo/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 01:58:16 +01:00
Pierre MARTINandClaude Opus 5.5 f1c52941e9 Police Alegreya Sans embarquée (woff2, sous-ensemble latin)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 01:58:16 +01:00
Pierre MARTINandClaude Opus 5.5 7a9b376417 Coup de l'ordinateur : animation, traces et bouton Revoir
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>
2026-11-03 01:53:26 +01:00
Pierre MARTINandClaude Opus 5.5 359cdcbb38 Mode paysage : plateau ajusté à la hauteur de l'écran, boutons à droite
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 01:22:54 +01:00
Pierre MARTINandClaude Opus 5.5 ae1ea54782 Moteur WebAssembly : remettre la pile en place après chaque commande
callMain (Emscripten) copie les arguments sur la pile du WebAssembly
(64 Ko) sans les retirer. Pendant une partie dans le navigateur, le même
moteur reçoit des centaines de commandes : vers la 540e, la pile débordait
et corrompait la mémoire du moteur (moteur muet dans Firefox, onglet planté
dans Chromium, « memory access out of bounds » sous Node). Repéré par
make test-browser. stackSave et stackRestore sont exportés et encadrent
chaque commande ; un test en envoie 3000 à la suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 00:27:24 +01:00
Pierre MARTINandClaude Opus 5.5 a8636b3f83 Plateau jouable en PWA : interface, Web Worker, stockage, service worker
L'application est à la racine du site : plateau en SVG, saisie au toucher
(pion puis case d'arrivée, proposées à partir du moteur), boutons du jet,
du videau et de nouvelle partie, coup de l'ordinateur affiché avec son
temps, fin de partie, reprise depuis localStorage, aide lue dans les
copies de docs/. Le moteur tourne dans le Web Worker existant ; main.ts
est le seul assembleur (nouvelles règles dependency-cruiser). Le service
worker met tout le site en cache, avec une empreinte du contenu comme
version. Les pages de test du moteur passent sous /moteur/. Politique de
sécurité du contenu dans le Caddyfile ; make test-browser joue une partie
dans Chromium et Firefox sans écran (Playwright, hors de make test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 21:47:12 +01:00
Pierre MARTINandClaude Opus 5.5 120367e6d3 Page de test et page de mesure du moteur WebAssembly
web/ : le moteur tourne dans un Web Worker (module ES) ; la page de
test donne le meilleur coup d'une position et son temps de calcul ;
la page de mesure chronomètre les positions de référence, mesure la
taille téléchargée et la mémoire, compare aux seuils de l'étape 0b et
produit un rapport à copier. make bench fait la même mesure sous Node,
make deploy-web sert les pages sur le réseau local. Guide de test pour
le Fairphone 4 dans docs/guide-test-etape-0.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:13:04 +01:00
Pierre MARTINandClaude Opus 5.5 b0030521d8 Moteur en WebAssembly : make engine-wasm et suite de contrat
Le moteur et engine-cli sont compilés avec Emscripten (image figée
emscripten/emsdk:3.1.64), en C générique, sans threads ; les données
de build/data/ sont incluses dans engine.data. Le JavaScript appelle
engine_init une fois puis main pour chaque commande : la sortie est le
JSON d'engine-cli, sans code de mise en forme dupliqué.

tests/test_wasm_reference.sh rejoue les 32 positions de référence sous
Node avec le même comparateur (option --cli) et la même tolérance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:07:01 +01:00