Fusion de main (leçons, 1g) dans plateau-soigne

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-12 18:37:06 +01:00
co-authored by Claude Opus 5.5
45 changed files with 2931 additions and 183 deletions
@@ -202,3 +202,28 @@ le panneau d'analyse de gnubg de bureau.
à la reprise et recalculé en arrière-plan ; les analyses de l'ordinateur
(`review.computer`), du même format, aussi.
- Ni les événements (version 2) ni le schéma IndexedDB ne changent.
### 2026-11-12 — La progression dans les leçons
Avec les leçons (étape 1g), la progression rejoint les formats durables. Elle
est rangée dans le stockage des parties (étape 1b), à côté de la partie en
cours :
- IndexedDB : une nouvelle clé `lessons` dans le magasin `settings`
existant. Le schéma ne change pas (base « ustagammon », version 1, mêmes
magasins) : aucune montée de version n'est nécessaire, et une base
enregistrée avant l'étape 1g se lit telle quelle, sans progression.
- Repli localStorage (et mémoire) : la clé `ustagammon.lessons`.
- La valeur, en JSON, porte sa version (`LESSON_PROGRESS_VERSION`, 1) et,
par numéro de leçon, la dernière étape vue (`last`), la plus lointaine
(`reached`, 99 pour la fin) et les étapes dont l'exercice est réussi
(`solved`) (`app/src/domain/learning/lessons.ts`).
- `readLessonProgress` relit toute valeur enregistrée : absente ou
illisible, la progression est vide ; une leçon mal formée est oubliée sans
toucher aux autres ; une version inconnue est lue comme vide plutôt que
mal comprise. Toute évolution du format passera par une nouvelle version
et sa migration dans cette fonction, testées dans
`app/tests/lessons.test.ts` comme ici.
- Une leçon est terminée quand tous ses exercices sont réussis ; ce n'est
pas enregistré à part, mais déduit des exercices réussis et du texte de la
leçon : ajouter un exercice à une leçon la fait repasser « en cours ».
+27
View File
@@ -57,3 +57,30 @@ aide » et « Fin de partie » du canevas ci-dessus.
- Les leçons sont des contenus sous CC BY-SA 4.0, à écrire et à faire relire
par un joueur fort (cadrage, risque « contenus longs à produire ») ; leur
progression est stockée localement.
## Amendements
### 2026-11-12 — Les cinq premières leçons, sans relecture préalable
Décision de Pierre du 2026-11-09 (`docs/etape-1.md`, « Décisions de
Pierre ») : les leçons ne sont pas relues par un joueur fort avant d'être
livrées ; elles le sont telles quelles et améliorées sur retours d'experts.
La relecture prévue ci-dessus est remplacée par des garde-fous vérifiés par
`make test` (`app/tests/lessons.test.ts`) :
- chaque exercice « à vous » attend un seul coup, le meilleur coup du
moteur à 2 plis, avec plus de 0,04 d'équité d'avance sur le deuxième ; il
accepte ce coup et refuse tous les autres ;
- chaque coup illustré est aussi le meilleur coup du moteur à 2 plis ;
- chaque compte de points cité par le texte est celui du moteur ;
- le texte n'affirme rien que le moteur ne confirme : les coups, les points
faits, les pions frappés ou laissés seuls, lisibles dans la position ;
aucune explication stratégique inventée.
Les cinq leçons (étape 1g) vivent dans `docs/lecons/` (format et
garde-fous : `docs/lecons/README.md`), au format du tutoriel, et
réutilisent son écran. L'état d'une leçon est « à commencer », « 2
exercices sur 4 » ou « terminée » (tous ses exercices réussis) ; toutes
restent ouvertes, l'ordre est conseillé. La progression est enregistrée
avec les parties (ADR 0007, amendement du 2026-11-12) ; leurs adresses sont
dans l'ADR 0013 (amendement du 2026-11-12).
+26
View File
@@ -192,3 +192,29 @@ demande suivie de `/ia` :
- Le prompt contient, lui, le lien public de la position
(`https://ustagammon.sans.pub/#/position/<Position ID>/<Match ID>`),
qui se partage.
### 2026-11-12 — Adresses des leçons
Ajoutées avec les cinq premières leçons (étape 1g), dans le même schéma,
sur le modèle du tutoriel :
| Écran | Adresse |
| --- | --- |
| Liste des leçons | `#/lecons` |
| Une étape d'une leçon (son écran d'explication) | `#/lecons/<n>/<étape>` |
| L'exercice « à vous » d'une étape | `#/lecons/<n>/<étape>/a-vous` |
| Fin d'une leçon | `#/lecons/<n>/fin` |
- `<n>` est le numéro de la leçon (1 à 5 pour l'instant), `<étape>` celui
d'une étape de la leçon, à partir de 1 ; `#/lecons/<n>` mène à sa
première étape. Le `<écran>` du plan de l'étape 1g se décline ainsi en
`<étape>`, `<étape>/a-vous` ou `fin`, comme pour le tutoriel.
- Une leçon qui n'existe pas mène à la liste (`#/lecons`), une étape qui
n'existe pas à la première étape de la leçon, un exercice absent à
l'explication de son étape : jamais une page cassée.
- « Continuer » (la liste, la carte de l'accueil) mène à l'étape où l'on a
quitté la leçon ; « Quitter » et « Retour » sur la première étape
ramènent à la liste ; l'action de la fin mène à la leçon suivante, ou à la
liste après la dernière. Le menu a une ligne « Les leçons ».
- Ces adresses se partagent : le contenu des leçons est le même pour tous ;
seule la progression (barre, état) dépend de l'appareil.
+1 -1
View File
@@ -23,7 +23,7 @@ Repris du cadrage (modules, écrans clés, IA générative en V1) et des ADR 001
| 1d. Conseil du maître (fait) | Après chaque coup du joueur, jamais avant (ADR 0011) : appréciation du moteur (bon coup, imprécision, erreur, grosse erreur) avec mot, icône et couleur, phrase du maître fondée sur les chiffres du moteur, coup recommandé montré sur demande ; aussi pour les décisions de videau ; calcul en arrière-plan sans retarder le jeu | 1a |
| 1e. Fin de partie et analyse (fait) | Bilan (ADR 0011) : résultat, coups par appréciation, taux d'erreur comparé à la chance, « le coup à revoir » ; écran d'analyse : graphe d'équité (toucher un point ouvre la position), liste des erreurs filtrable, visualiseur pas à pas coup joué contre meilleur coup, « Rejouer d'ici » | 1a, 1b, 1d |
| 1f. Prompts à copier (fait) | Gabarits versionnés et testés (`docs/prompts/` ou équivalent, source unique), bouton « Demander à une IA » sur le plateau, le conseil du maître, l'analyse et la fin de partie ; le moteur décide, l'IA explique | 1d, 1e |
| 1g. Accueil, tutoriel et leçons | Accueil (reprendre, nouvelle partie, prochaine leçon, progression résumée), tutoriel des règles interactif et illustré (0e.5), cinq premières leçons numérotées (ADR 0011) avec positions et « à vous de jouer », progression locale ; contenus CC BY-SA 4.0 en brouillon, à relire par un joueur fort | 0e.5, 1a |
| 1g. Accueil, tutoriel et leçons (fait) | Accueil (reprendre, nouvelle partie, prochaine leçon, progression résumée), tutoriel des règles interactif et illustré (0e.5), cinq premières leçons numérotées (ADR 0011) avec positions et « à vous de jouer », progression locale ; contenus CC BY-SA 4.0 livrés sans relecture préalable, sous les garde-fous du moteur (décision du 2026-11-09) | 0e.5, 1a |
| 1h. Progression | Historique des parties et courbe du taux d'erreur | 1b, 1e |
| 1i. Plateau soigné (fait) | Dessin du plateau aligné sur la charte (`docs/identite/charte/board.js`), animations des pions, glisser-déposer en plus du toucher, double toucher pour le seul coup évident | 0e.3 |
| 1j. Plan de test | `docs/guide-test-etape-1.md` : parcours du débutant et du joueur de club sur le téléphone, avec ce qu'il faut rapporter | toutes |
+12 -2
View File
@@ -236,8 +236,18 @@ l'ordre, chacune avec une pastille ronde à son numéro :
Toutes les leçons restent ouvertes : l'ordre est conseillé, jamais imposé.
Les écrans d'une leçon suivent la forme du tutoriel (barre de progression,
« Passer », « Retour », « Continuer », écrans « à vous » contrôlés par le
moteur).
« Quitter », « Retour », « Continuer », écrans « à vous » contrôlés par le
moteur), aux adresses `#/lecons/<n>/<écran>`, `…/a-vous` et `…/fin`.
- Une leçon est **terminée** quand tous ses exercices sont réussis.
- « Retour » et « Continuer » restent **en bas de l'écran**, sous le pouce,
comme dans le tutoriel, quelle que soit la longueur du texte.
- « Revoir » (rejouer le coup illustré) se place sur la ligne du titre, à
droite, en portrait comme en paysage : le texte garde toute la largeur.
- En paysage, la colonne de droite garde la ligne `caption` « Leçon 1 · 1 sur
4 · À vous » au-dessus du titre.
- Les titres et les textes n'emploient que les mots du glossaire : « point »
et « flèche », jamais « case ».
## 1h. Progression (`#/progression`)
+44
View File
@@ -0,0 +1,44 @@
# Leçons
Les cinq premières leçons d'Ustagammon (ADR 0011, étape 1g), une leçon par
fichier, en une seule source (ADR 0008) : `lecon-1.md` à `lecon-5.md`.
`make site` copie ce dossier dans le site publié (`docs/lecons/`) ;
l'application le lit à l'exécution (`app/src/ui/lesson-text.ts`), et
`make test` vérifie chaque position, chaque coup et chaque compte de points
avec le vrai moteur (`app/tests/lessons.test.ts`).
Textes sous licence **CC BY-SA 4.0**. Première version, rédigée par Claude
Code ; décision de Pierre du 2026-11-09 : pas de relecture préalable par un
joueur fort, les leçons sont livrées telles quelles et améliorées sur
retours d'experts.
## Garde-fous
- Chaque coup attendu d'un exercice « à vous » est le meilleur coup du
moteur à 2 plis, avec plus de 0,04 d'équité d'avance sur le deuxième :
un exercice n'a qu'une bonne réponse nette. `make test` le vérifie.
- Chaque coup illustré d'un écran d'explication est aussi le meilleur coup
du moteur à 2 plis.
- Le texte n'affirme rien que le moteur ne confirme : les coups du maître,
les points faits, les pions frappés ou laissés seuls (lisibles dans la
position), les comptes de points (`compte`, vérifiés par le test). Aucune
explication stratégique inventée.
- Le vocabulaire est celui du glossaire (`docs/glossaire/`) : flèche, point,
jan intérieur, jan extérieur, blot, barre ; vos pions sont blancs, ceux de
l'ordinateur noirs.
- Le ton est celui du maître (`docs/maitre/phrases.md`) : première
personne, vouvoiement, sobre, sans point d'exclamation ni reproche.
## Format
Celui du tutoriel (`docs/tutoriel/README.md`), avec deux ajouts :
- la première ligne, `# <titre>`, donne le titre de la leçon ; la notice qui
suit, jusqu'à la première étape, n'est pas affichée ;
- `compte: <vous>/<ordinateur>`, en tête d'un écran, donne les comptes de
points de sa position, que le texte cite ; le test les compare à ceux du
moteur.
Chaque leçon a de deux à quatre exercices « à vous » (`### À vous`), et un
écran de fin (`## Fin`) dont l'action mène à la leçon suivante, ou à la
liste des leçons après la dernière.
+84
View File
@@ -0,0 +1,84 @@
# Les ouvertures
Leçon 1 d'Ustagammon : bien jouer ses premiers dés. Texte sous licence
CC BY-SA 4.0. Format : voir README.md.
## 1. Un point dès le premier coup
- position: 4HPwATDgc/ABMA
- jet: 3-1
- coup: 8/5 6/5
Au premier coup, avec 3 et 1, je joue 8/5 6/5 : deux pions blancs se posent sur la flèche 5. Ce [point](point.md) est fait, l'ordinateur ne peut plus s'y poser.
La flèche 5 est dans votre [jan intérieur](jan-interieur.md), là où vous rassemblerez vos pions avant de les sortir. Le moteur classe ce coup premier, nettement devant tous les autres.
### À vous
- position: 4HPwATDgc/ABMA
- jet: 4-2
- attendu: 8/4 6/4
- juste: C'est aussi mon coup : 8/4 6/4 fait le point 4.
- refus: Ce coup est permis, mais je préfère faire un point. Cherchez la flèche de votre jan intérieur où le 4 et le 2 amènent chacun un pion.
Vous avez 4 et 2. Faites un point dans votre jan intérieur.
## 2. La flèche 7
- position: 4HPwATDgc/ABMA
La flèche 7 ouvre votre [jan extérieur](jan-exterieur.md), juste à côté de la barre. Fermée, elle formerait avec la flèche 6, où sont déjà vos cinq pions, deux points côte à côte.
Les deux pions noirs de votre flèche 1 doivent passer par là : depuis la flèche 1, un 6 les mène sur la flèche 7, et un 5 est déjà bloqué par votre point 6.
### À vous
- position: 4HPwATDgc/ABMA
- jet: 6-1
- attendu: 13/7 8/7
- juste: C'est mon coup : 13/7 8/7 fait le point 7.
- refus: Ce coup est permis, mais je préfère fermer la flèche 7 : un pion y arrive avec le 6, un autre avec le 1.
Vous avez 6 et 1. Fermez une flèche de votre jan extérieur.
## 3. Répondre avec un double
- position: sGfwATDgc/ABMA
L'ordinateur a ouvert avec 3-1 : il a fait le point 5 de son jan intérieur, votre flèche 20. À vous de lancer les dés.
Un double se joue quatre fois. Dans la notation des coups, « (2) » veut dire que deux pions font le même trajet.
### À vous
- position: sGfwATDgc/ABMA
- jet: 6-6
- attendu: 24/18(2) 13/7(2)
- juste: C'est mon coup : 24/18(2) 13/7(2) fait deux points, sur la flèche 18 et sur la flèche 7.
- refus: Ce coup est permis, mais je préfère faire deux points : un avec les deux pions de la flèche 24, un autre avec deux pions de la flèche 13.
Vous avez 6-6, quatre fois 6. Faites deux points avec ce jet.
## 4. Un double qui ne passe pas partout
- position: sGfwATDgc/ABMA
Même position. Les pions de votre flèche 24 ne peuvent pas jouer de 5 : la flèche 19 est fermée par quatre pions noirs.
Avec 5-5, il faut donc jouer les quatre 5 avec vos autres pions.
### À vous
- position: sGfwATDgc/ABMA
- jet: 5-5
- attendu: 13/3(2)
- juste: C'est mon coup : 13/3(2) amène deux pions de la flèche 13 jusqu'à la flèche 3, où ils font un point.
- refus: Ce coup est permis, mais je préfère amener deux pions de la flèche 13 jusque dans votre jan intérieur, où ils font un point ensemble.
Vous avez 5-5. Faites un point dans votre jan intérieur.
## Fin
- action: Leçon suivante
Avec 3-1, 4-2 et 6-1, le moteur fait un point dès le premier coup. Pour les autres jets, je vous dirai en partie ce que j'aurais joué.
+66
View File
@@ -0,0 +1,66 @@
# Faire des points
Leçon 2 d'Ustagammon : construire son jeu en faisant des points. Texte sous
licence CC BY-SA 4.0. Format : voir README.md.
## 1. Deux pions font un point
- position: 4HPwATDQc+IBMA
- jet: 6-4
- coup: 10/4 8/4
Une flèche où vous avez deux pions ou plus est un [point](point.md) fait : un pion noir ne peut pas s'y poser. Un pion noir frappé doit rentrer dans votre [jan intérieur](jan-interieur.md) : chaque point que vous y fermez lui retire une flèche d'entrée.
Avec 6 et 4, je joue 10/4 8/4 : les deux pions arrivent ensemble sur la flèche 4.
### À vous
- position: 4HPwATDQc+IBMA
- jet: 6-2
- attendu: 13/5
- juste: C'est mon coup : 13/5 rejoint le pion de la flèche 5 et fait le point.
- refus: Ce coup est permis, mais je préfère couvrir le pion seul de la flèche 5 : un pion de la flèche 13 y arrive avec le 6 et le 2.
Même position, vous avez 6 et 2. Votre pion de la flèche 5 est seul : couvrez-le.
## 2. Des pions prêts à construire
- position: 4HPwATDQZ+EBMA
Un pion posé sur les flèches 7 à 12, dans votre [jan extérieur](jan-exterieur.md), peut entrer dans votre jan intérieur avec un seul dé.
Ici, un pion blanc est seul sur la flèche 5, un autre sur la flèche 9.
### À vous
- position: 4HPwATDQZ+EBMA
- jet: 4-1
- attendu: 13/9 6/5
- juste: C'est mon coup : 6/5 fait le point 5, et 13/9 amène un deuxième pion sur la flèche 9.
- refus: Ce coup est permis, mais ce n'est pas le mien. Je couvre la flèche 5 avec le 1, depuis la flèche 6, et je joue le 4 depuis la flèche 13.
Vous avez 4 et 1. Couvrez votre pion de la flèche 5 et jouez l'autre dé au mieux.
## 3. Les doubles construisent vite
- position: 4HPwATDgc/ABMA
- jet: 2-2
- coup: 13/11(2) 6/4(2)
Un double se joue quatre fois : de quoi faire deux points d'un coup. Au départ, avec 2-2, je joue 13/11(2) 6/4(2) : un point sur la flèche 4, un autre sur la flèche 11.
### À vous
- position: 4HPwATDgc/ABMA
- jet: 3-3
- attendu: 8/5(2) 6/3(2)
- juste: C'est mon coup : 8/5(2) 6/3(2) fait deux points dans votre jan intérieur, sur les flèches 5 et 3.
- refus: Ce coup est permis, mais je préfère faire deux points dans votre jan intérieur : deux pions de la flèche 8 et deux pions de la flèche 6 avancent de 3.
Vous avez 3-3. Faites deux points dans votre jan intérieur.
## Fin
- action: Leçon suivante
Un point se fait à deux pions, et un double peut en faire deux d'un coup. Dans la leçon suivante : frapper un pion noir, ou ne pas le frapper.
+62
View File
@@ -0,0 +1,62 @@
# Frapper ou ne pas frapper
Leçon 3 d'Ustagammon : frapper ou ne pas frapper, sécurité et risque. Texte
sous licence CC BY-SA 4.0. Format : voir README.md.
## 1. Frapper en faisant un point
- position: 4HPwQSDgc/ABMA
- jet: 6-1
- coup: 13/7* 8/7
Un pion noir est seul sur votre flèche 7 : c'est un [blot](blot.md). Avec 6 et 1, je joue 13/7* 8/7. L'astérisque marque le pion frappé : il part sur la [barre](barre.md).
Les deux pions blancs restent ensemble sur la flèche 7 : le point est fait, aucun pion noir ne peut plus s'y poser.
### À vous
- position: 4HPwASHgc/ABMA
- jet: 3-1
- attendu: 8/5* 6/5
- juste: C'est mon coup : 8/5* 6/5 frappe le pion noir et fait le point 5.
- refus: Ce coup est permis, mais je préfère frapper le pion noir de la flèche 5 avec deux pions à la fois : l'un avec le 3, l'autre avec le 1.
Cette fois, le pion noir est seul sur votre flèche 5. Vous avez 3 et 1.
## 2. Un point plutôt qu'un coup risqué
- position: 4HPwASHgc/ABMA
Même position. Un pion blanc qui frappe seul devient lui-même un blot : si un pion noir se pose dessus, c'est lui qui part sur la barre.
### À vous
- position: 4HPwASHgc/ABMA
- jet: 6-1
- attendu: 13/7 8/7
- juste: C'est mon coup : 13/7 8/7 fait le point 7, sans frapper. Le moteur classe tous les coups qui frappent derrière celui-ci.
- refus: Ce coup est permis, mais ce n'est pas le mien. Avec ce jet, je préfère faire un point plutôt que frapper : cherchez la flèche où le 6 et le 1 se rejoignent.
Vous avez 6 et 1. Le 1 frapperait depuis la flèche 6, mais je joue autrement. Trouvez mon coup.
## 3. Ne pas frapper avec un seul pion
- position: 4HPwQSDgc/ABMA
Retour au pion noir de votre flèche 7, avec un autre jet : 3 et 1. Le 1 le frapperait depuis la flèche 8, mais le pion qui frappe resterait seul sur la flèche 7.
### À vous
- position: 4HPwQSDgc/ABMA
- jet: 3-1
- attendu: 8/5 6/5
- juste: C'est mon coup : 8/5 6/5 fait le point 5, sans frapper.
- refus: Ce coup est permis, mais je préfère ne pas frapper ici et faire un point dans votre jan intérieur, comme à l'ouverture.
Vous avez 3 et 1. Frappez-vous ?
## Fin
- action: Leçon suivante
Dans ces positions, je frappe quand je fais un point en même temps, et je préfère faire un point quand le pion qui frappe resterait seul. En partie, je vous dirai ce que j'aurais joué.
+76
View File
@@ -0,0 +1,76 @@
# La course et le compte de points
Leçon 4 d'Ustagammon : la course et le compte de points. Texte sous licence
CC BY-SA 4.0. Format : voir README.md.
## 1. Compter ses points
- position: 4HPwATDgc/ABMA
- compte: 167/167
- jet: 6-1
- coup: 13/7 8/7
Votre [compte de points](compte-de-points.md) est le nombre de flèches que vos pions doivent encore parcourir pour sortir : un pion sur la flèche 13 compte pour 13, un pion sur la barre pour 25. Au départ, chacun en a 167.
Chaque coup le fait baisser de la somme des dés : après 6-1, le vôtre passe à 160. Le plus petit compte est en avance dans la [course](course.md).
## 2. En avance, j'avance
- position: cM8NBwC49xkAIA
- compte: 102/120
Ici, vos pions ont 102 flèches à parcourir, ceux de l'ordinateur 120 : vous avez 18 points d'avance.
Il vous reste un pion dans le jan intérieur de l'ordinateur, sur votre flèche 24.
### À vous
- position: cM8NBwC49xkAIA
- jet: 6-5
- attendu: 24/13
- juste: C'est mon coup : 24/13. Avec 18 points d'avance, mon dernier pion quitte le jan intérieur de l'ordinateur.
- refus: Ce coup est permis, mais je préfère faire avancer le pion de la flèche 24 avec les deux dés : il quitte le jan intérieur de l'ordinateur.
Vous avez 6 et 5. Que faites-vous de votre dernier pion ?
## 3. Encore en avance
- position: cM8ZBwC49xkAEA
- compte: 101/122
Autre position : 101 contre 122, vous avez 21 points d'avance. Un de vos pions est encore sur la flèche 23.
### À vous
- position: cM8ZBwC49xkAEA
- jet: 5-2
- attendu: 23/16
- juste: C'est mon coup : 23/16. Le pion de la flèche 23 avance avec les deux dés.
- refus: Ce coup est permis, mais je préfère faire avancer le pion de la flèche 23 avec les deux dés.
Vous avez 5 et 2.
## 4. En retard, je frappe
- position: 3L0HIADYPQcHAA
- compte: 110/81
Ici, les pions de l'ordinateur ont 81 flèches à parcourir, les vôtres 110 : il a 29 points d'avance. Son dernier pion est seul sur votre flèche 9.
Frappé, ce pion part sur la barre : pour l'ordinateur, il comptait 16 et compte maintenant 25, soit 9 de plus.
### À vous
- position: 3L0HIADYPQcHAA
- jet: 4-3
- attendu: 13/10 13/9*
- juste: C'est mon coup : 13/10 13/9* frappe le dernier pion noir. Sur la barre, il compte 25 : le compte de l'ordinateur passe de 81 à 90.
- refus: Ce coup est permis, mais je préfère frapper le pion noir seul de la flèche 9 : un pion de la flèche 13 y arrive avec le 4.
Vous avez 4 et 3.
## Fin
- action: Leçon suivante
Comptez avant de choisir. Dans ces positions, en avance, je fais avancer mon dernier pion ; en retard, je frappe celui de l'ordinateur.
+64
View File
@@ -0,0 +1,64 @@
# Sortir sans se faire frapper
Leçon 5 d'Ustagammon : sortir ses pions sans se faire frapper. Texte sous
licence CC BY-SA 4.0. Format : voir README.md.
## 1. Un pion noir encore chez vous
- position: trsHACC2uwMAAA
- jet: 6-3
- coup: 6/off 5/2
Tous vos pions sont dans votre [jan intérieur](jan-interieur.md) : vous pouvez les [sortir](sortie.md). Mais un pion noir est encore sur votre flèche 1, et il peut frapper un pion blanc laissé seul.
Avec 6 et 3, je joue 6/off 5/2 : un pion sort, et aucun pion blanc ne reste seul. 6/off 3/off en sortirait deux, mais laisserait un pion seul sur la flèche 3.
### À vous
- position: trsHACC2uwMAAA
- jet: 6-4
- attendu: 6/off 4/off
- juste: C'est mon coup : 6/off 4/off sort deux pions et ne laisse aucun pion seul.
- refus: Ce coup est permis, mais il laisse un pion blanc seul, ou sort moins de pions que le mien. Cherchez à sortir deux pions sans laisser de pion seul.
Même position, vous avez 6 et 4.
## 2. Un pion noir sur la barre
- position: trsHAEBtdw8AAA
Ici, le pion noir est sur la [barre](barre.md) : il doit rentrer dans votre jan intérieur, et s'il se pose sur un pion blanc seul, il le frappe.
Votre pion de la flèche 1 est seul.
### À vous
- position: trsHAEBtdw8AAA
- jet: 6-1
- attendu: 6/off 1/off
- juste: C'est mon coup : 6/off 1/off sort deux pions, dont le pion seul de la flèche 1.
- refus: Ce coup est permis, mais je préfère sortir deux pions, dont celui qui est seul sur la flèche 1.
Vous avez 6 et 1.
## 3. Deux pions noirs en embuscade
- position: uHsOADC23QMAAA
Deux pions noirs tiennent votre flèche 1 : ils peuvent frapper tout pion blanc laissé seul à leur portée.
### À vous
- position: uHsOADC23QMAAA
- jet: 5-2
- attendu: 6/4 5/off
- juste: C'est mon coup : 6/4 5/off sort un pion et ne laisse aucun pion seul.
- refus: Ce coup est permis, mais il laisse un pion blanc seul, ou ne sort aucun pion. Le mien sort un pion sans en laisser un seul.
Vous avez 5 et 2.
## Fin
- action: Toutes les leçons
Dans ces positions, avec des pions noirs encore dans votre jan intérieur, je sors mes pions sans en laisser un seul. Les leçons suivantes viendront avec les prochaines versions.
-36
View File
@@ -1,36 +0,0 @@
# Cinq premières leçons et accueil complet (1g)
- **Date** : 2026-11-03
- **Étape** : 1g (`docs/etape-1.md`) ; le tutoriel des règles est traité en 0e.5
- **Statut** : prévu (après 0e.5 et 1d)
- **Exécutant** : sous-agent general-purpose, dans un worktree
## Objectif
Mettre en place les cinq premières leçons numérotées de l'ADR 0011. Chaque leçon est faite d'écrans courts : une explication, une position animée, puis « à vous de jouer ». La progression est stockée localement, et l'accueil propose « Continuer la leçon ».
## Consignes
1. **Contenus.** Ils vivent dans une source unique sous `docs/lecons/`, sous licence CC BY-SA 4.0, au même format que le tutoriel de 0e.5 (réutiliser son moteur d'écrans). Cinq leçons du parcours 2 du cadrage, au niveau débutant :
1. Les ouvertures : bien jouer ses premiers dés.
2. Construire ses cases et faire des points.
3. Frapper ou ne pas frapper : sécurité et risque.
4. La course et le compte de points.
5. Sortir ses pions sans se faire frapper.
Chaque leçon compte deux à quatre exercices « à vous ». Leurs positions sont données par identifiants gnubg. La réponse attendue est le meilleur coup du moteur à 2 plis, vérifié par un test. Le texte n'affirme rien que le moteur ne confirme. Décision de Pierre du 2026-11-09 : pas de relecture préalable par un joueur fort ; les leçons sont livrées telles quelles et améliorées sur retours d'experts. Les garde-fous restent : chaque réponse attendue est le meilleur coup du moteur, vérifié par un test, et le texte n'affirme rien que le moteur ne confirme.
2. **Progression.** Elle est enregistrée dans le stockage de 1b, dans le magasin `settings` ou dans un nouveau magasin avec montée de version (ADR 0007 amendé). Chaque leçon a son état : à commencer, « 2 exercices sur 4 », terminée.
3. **Adresses** : `#/lecons` et `#/lecons/<n>/<écran>`, à ajouter au tableau de l'ADR 0013.
4. **Accueil.** Il reçoit la carte « prochaine leçon » prévue par la charte.
5. **Tests.**
- Pour chaque exercice, la position est valide et la réponse attendue est bien le meilleur coup du moteur.
- Scénarios Gherkin.
- `make lint`, `make test`, `make test-browser`, avec captures.
## Critères de réussite
Les cinq leçons se suivent jusqu'au bout. Chaque exercice accepte le coup du moteur et commente les autres avec bienveillance. Les trois commandes passent.
## Résultat
À remplir à la clôture.
+1
View File
@@ -65,4 +65,5 @@ Règles d'écriture :
| [regler-l-application.feature](regler-l-application.feature) | Régler l'application (menu), la mettre à jour | Étape 0e |
| [decouvrir-l-application.feature](decouvrir-l-application.feature) | Premier lancement et accueil | Étape 0e.5 |
| [apprendre-les-regles.feature](apprendre-les-regles.feature) | Apprendre les règles avec le tutoriel | Étape 0e.5 |
| [suivre-une-lecon.feature](suivre-une-lecon.feature) | Progresser avec les leçons, garder sa progression | Étape 1g |
| [installer-l-application.feature](installer-l-application.feature) | Installer l'application | Étape 0e.5 |
+46
View File
@@ -0,0 +1,46 @@
# language: fr
Fonctionnalité: Progresser avec les leçons
Cinq leçons courtes, sur le vrai plateau : les ouvertures, faire des
points, frapper ou non, la course et le compte de points, sortir sans se
faire frapper. Chacune explique une idée en quelques écrans, puis vous
fait jouer le coup du maître. GNU Backgammon vérifie chaque coup.
Scénario: Comment se passent les leçons ?
Les leçons sont dans le menu, et l'accueil propose la prochaine. Chaque
leçon a de deux à quatre exercices « à vous ». La liste montre où vous
en êtes : à commencer, « 1 exercice sur 3 », terminée. L'ordre est
conseillé, mais toutes les leçons restent ouvertes.
Étant donné que vous ouvrez les leçons pour la première fois
Alors il y en a cinq, chacune avec deux à quatre exercices
Et chaque position des leçons se lit sur le plateau
Et l'accueil vous propose la leçon 1
Quand vous réussissez le premier exercice de la leçon 2
Alors la leçon 2 en est à « 1 exercice sur 3 »
Et l'accueil vous propose de continuer la leçon 2
@position:4HPwATDgc/ABMA
Scénario: Je joue un autre coup que celui du maître
Sur un exercice, vous jouez sur le vrai plateau. Si votre coup n'est pas
celui du maître, le pion revient et une phrase vous met sur la voie ;
réessayez autant que vous voulez. Le coup attendu est toujours celui
que GNU Backgammon préfère, nettement devant les autres.
Étant donné que vous êtes au premier exercice de la leçon 1
Quand vous avancez un pion de la flèche 13 à la flèche 11
Alors le pion revient, et le maître vous met sur la voie
Quand vous faites le point 4
Alors le maître salue votre coup
Et c'est le meilleur coup du moteur
Scénario: Ma progression est-elle gardée ?
Oui : chaque exercice réussi est enregistré sur votre téléphone, avec
vos parties. Une leçon est terminée quand tous ses exercices sont
réussis ; « Continuer » vous ramène là où vous l'avez quittée.
Étant donné que vous avez quitté la leçon 3 à sa deuxième étape
Quand vous revenez plus tard aux leçons
Alors « Continuer » vous ramène à la deuxième étape de la leçon 3
Quand vous réussissez tous les exercices de la leçon 3
Alors la leçon 3 est terminée