Le classement du conseil vient de l'analyse du coup joué (conseils en
version 2) : mêmes équités que la feuille du maître et l'analyse. Le
titre dit le niveau du meilleur coup ; une ligne plus basse le dit aussi.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conflits résolus en gardant les deux apports : la feuille du prompt et la
correction de reviewFinishedGame dans app.ts ; prompts et nouvelle-partie
dans tests/browser.sh.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La fiche explique 13/7, 24/22*, 6/off, bar/22 et 8/4(2), dans la notation
de gnubg. Le type MoveNotation la relie au code. Le coup de la ligne
« L'ordinateur a joué » et celui de la feuille du maître mènent à la fiche.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Recette de 1f (F3). En dessous de 20 décisions analysées, le prompt dit
« Je débute au backgammon. ». Test du seuil ; outil prompt-sample pour
relire des prompts remplis par le moteur. Plan de 1f clos.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le bouton, secondaire, dans la feuille du maître, sur le bilan, dans
l'analyse et sur la fiche ouverte du glossaire. Il ouvre la feuille du
prompt (…/ia, amendement de l'ADR 0013), où le texte se relit avant la
copie : navigator.clipboard, repli par sélection du texte, bandeau
« Prompt copié » (2 s). Gabarits copiés par make site (amendement de
l'ADR 0008), scénario « Demander à une IA », 1f marquée faite.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cinq gabarits sous CC BY-SA 4.0 (coup, videau, bilan, concept,
exercices), remplis par des fonctions pures de domain/prompts/ avec la
position lue par le moteur (identifiants, lien public, diagramme) et ses
chiffres, écrits comme à l'écran (domain/analysis/numbers.ts, partagé avec
la feuille du maître, le bilan et l'analyse). Testés sur de vraies
analyses : aucun repère vide ni inconnu, mêmes chiffres que l'écran.
Fiche du glossaire « Prompt ».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Après un double complet, la saisie restée ouverte demandait au moteur un
cinquième demi-coup, que la ligne de commande refuse (erreur dans la page,
relevée par make test-browser). Test : un moteur qui refuse plus de
demi-coups que de dés.
Coup de l'ordinateur : la recette du navigateur vérifie la ligne
« L'ordinateur a joué … » au premier coup montré.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
« L'ordinateur a joué 6-4 : 6/off » au lieu de « 6/2 2/off » : la
notation vient du coup légal de gnubg qui mène à la même position
(Game.moveNotation), comme dans l'analyse et le bilan. Testé : sur une
partie analysée, chaque coup s'écrit pareil des deux côtés.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La partie fermait la saisie dès que les demi-coups formaient un coup
légal. En sortie, 6/off seul mène à la même position que 6/5/off : le
1/off qui suivait était refusé. La saisie reste ouverte tant que le
moteur accepte un demi-coup de plus ; le tutoriel suit la même règle.
Tests : tous les ordres de saisie des fins de partie d'un à quatre pions,
sur les 21 jets, scénario Gherkin et tests du moteur pour les deux ordres.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Paysage : pendant la partie Crawford, la consigne de la bande centrale
commence par « Partie Crawford · » ; la police se resserre si besoin.
- Écran « Nouvelle partie » en paysage : deux colonnes au-dessus de la
barre d'action (type de partie et longueur à gauche, niveau et conseil
du maître à droite), tout tient en 915x412 et en 844x320.
- Fin de partie : « Rejouer » relance tout de suite une partie aux mêmes
réglages (un match de même longueur après un match), « Partie suivante »
dans un match qui continue, lien « Changer les réglages ».
- Recette automatique : aucun élément interactif visible sous une barre
d'action collée, vérifié sur chaque écran capturé (tests/browser/recette.mjs).
- Scénario « Comment rejouer avec les mêmes réglages ? ».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Partie de match (score et Crawford dits par le moteur), niveau choisi
porté par GameStarted, ordinateur joué comme ComputerTurn de gnubg ;
migration des journaux de la version 1 ; scénarios, glossaire, ADR 0007
et 0013 amendés.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le moteur écrit et décode le Match ID ; readPosition valide un lien,
linkOf donne celui d'une partie, setupOf la partie à jouer depuis la
position. Scénario « Partager une position », fiche « Lien de position ».
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>
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>
Ce dont l'interface a besoin, sans règle réimplémentée : le plateau vu de
chaque camp, les demi-coups que le moteur accepte à la suite de ceux déjà
saisis, le droit de doubler selon le moteur, et la reprise d'une partie
depuis son journal enregistré. Les types du navigateur sont ajoutés à
l'application ; le domaine reste vérifié sans eux.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
app/src/domain/game/ : une partie libre contre l'ordinateur, enregistrée
comme un arbre d'événements immuables et versionnés (GameStarted,
DiceRolled, MovePlayed, CubeOffered, CubeTaken, CubeDropped, GameEnded) ;
l'état se recalcule en les rejouant, annuler repart du parent, une action
après un retour ouvre une branche. Dés injectés. Le joueur saisit son coup
demi-coup par demi-coup ; l'ordinateur joue et décide du videau à 2 plis.
Toutes les règles viennent du moteur, derrière l'interface Engine que le
domaine définit.
app/src/engine/wasm-engine.ts : l'adaptateur Engine sur les commandes
d'engine-cli du moteur WebAssembly.
Tests : unitaires avec un faux moteur, et deux parties complètes jusqu'à
GameEnded sur le vrai moteur, avec des dés imposés.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>