From d47fc483acd84d3c9f2ec896cdb35b013a225b4b Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 7 Nov 2026 14:26:22 +0000 Subject: [PATCH] docs(adr): cut a word every right way, chained compositions included (ADR 0084) Documents the several-cuts answer already shipped in the app and what the content now publishes as autres_coupes: every cut of a part that is itself a composed word. Completes ADR 0053; game design and data model aligned. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01BkYb6EamApcbLXBiXShSgV --- docs/adr.html | 30 ++++++++- ...-decouper-glisser-une-lame-puis-valider.md | 2 +- ...ets-decouper-toutes-les-decoupes-justes.md | 65 +++++++++++++++++++ docs/adr/README.md | 3 +- docs/game-design.md | 2 +- docs/modele-donnees.md | 1 + outils/src/bin/build_adr.rs | 7 ++ 7 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 docs/adr/0084-ricochets-decouper-toutes-les-decoupes-justes.md diff --git a/docs/adr.html b/docs/adr.html index b417f5e..681a351 100644 --- a/docs/adr.html +++ b/docs/adr.html @@ -29,7 +29,7 @@

Les Architecture Decision Records consignent chaque décision structurante : son contexte, les options écartées et ses conséquences. Chaque ADR renvoie aux pages où la décision se voit.

Voir aussiLe modèle de donnéesLa boussolePrincipes d’expérienceVision du jeu (Markdown)

-
ADR 0001Accepté · modifié depuisSource Markdown

PWA responsive comme plateforme MVP

  • Statut : Accepté, partiellement remplacé par l'ADR 0033 : un toucher sur une brique la pose directement, sans sélection ni « Ajouter à la table ». Partiellement remplacé aussi par l'ADR 0041 : hors connexion, consultation seule, sans préparation de fusion ni tentative conservée
  • Portée : MVP
+
ADR 0001Accepté · modifié depuisSource Markdown

PWA responsive comme plateforme MVP

  • Statut : Accepté, partiellement remplacé par l'ADR 0033 : un toucher sur une brique la pose directement, sans sélection ni « Ajouter à la table ». Partiellement remplacé aussi par l'ADR 0041 : hors connexion, consultation seule, sans préparation de fusion ni tentative conservée
  • Portée : MVP

Contexte

ÉtymoLogique doit tester rapidement une interaction de manipulation utilisable au toucher comme à la souris. Le produit vise des sessions courtes, mais le codex et les explications bénéficient aussi d'un grand écran. Maintenir plusieurs applications natives retarderait la validation du cœur ludique.

Décision

@@ -1533,7 +1533,7 @@

Positives

Négatives

  • Un travail éditorial de plus : repérer les paires piégeuses, rédiger deux textes sourcés par trompe-l’œil, les relire.
  • Le « presque » d’un homographe dit qu’une autre brique existe, ce qui informe un peu sur le catalogue.
  • Un trompe-l’œil dont le mot_id est inconnu du joueur reste vague (« un de ses morceaux a une autre histoire ») : l’explication complète attend la découverte.
  • resoudre et prevoir gagnent deux règles à garder en miroir.

Critères de réévaluation

-
  • Plus de 30 % des échecs d’une semaine tombent sur une paire qu’aucun trompe-l’œil ni homographe n’explique : élargir la liste des candidats.
  • Un trompe-l’œil dont l’explication courte reste lue sans que le joueur ouvre « Pourquoi ? » : fusionner les deux textes.
  • Des joueurs redemandent les explications déjà lues : étudier un carnet des fausses pistes, en pesant la règle « aucune proposition de fusion stockée ».
  • Une explication jugée spoiler par les testeurs : ne plus afficher l’explication courte tant que le mot n’est pas trouvé.

En situationTable de fusionRévélation et fiche

ADR 0053Proposé · modifié depuisSource Markdown

Découper : glisser une lame, puis valider

  • Statut : Proposé, place de la lame remplacée par l’ADR 0068 : à l’arrivée et après chaque coupe, elle se pose au hasard sur une jointure qui n’est pas une coupe attendue. Le reste reste en vigueur.
  • Remplace partiellement : ADR 0044, pour le format Découper : quatre découpages proposés, option « Découper en touchant le mot » écartée, et « un toucher répond » appliqué à ce format
  • Complète : ADR 0007 (la commande de réponse reste unique et sous autorité serveur)
+
  • Plus de 30 % des échecs d’une semaine tombent sur une paire qu’aucun trompe-l’œil ni homographe n’explique : élargir la liste des candidats.
  • Un trompe-l’œil dont l’explication courte reste lue sans que le joueur ouvre « Pourquoi ? » : fusionner les deux textes.
  • Des joueurs redemandent les explications déjà lues : étudier un carnet des fausses pistes, en pesant la règle « aucune proposition de fusion stockée ».
  • Une explication jugée spoiler par les testeurs : ne plus afficher l’explication courte tant que le mot n’est pas trouvé.

En situationTable de fusionRévélation et fiche

ADR 0053Proposé · modifié depuisSource Markdown

Découper : glisser une lame, puis valider

  • Statut : Proposé, plusieurs découpes par mot complétées par l’ADR 0084, place de la lame remplacée par l’ADR 0068 : à l’arrivée et après chaque coupe, elle se pose au hasard sur une jointure qui n’est pas une coupe attendue. Le reste reste en vigueur.
  • Remplace partiellement : ADR 0044, pour le format Découper : quatre découpages proposés, option « Découper en touchant le mot » écartée, et « un toucher répond » appliqué à ce format
  • Complète : ADR 0007 (la commande de réponse reste unique et sous autorité serveur)

Contexte

L’ADR 0044 décrit le format Découper comme un choix entre quatre découpages d’un mot, et écarte le découpage « en touchant le mot » : sur mobile, les lettres sont trop étroites pour une cible de 44 px, et un mot en trois parties a plusieurs coupes justes.

Le client livre pourtant une variante : chaque jointure du mot est un bouton invisible, et la dernière coupe envoie la réponse. Au toucher, elle pose trois problèmes :

@@ -2242,7 +2242,31 @@

Positives

Négatives

  • Une vue de plus à maintenir, en SVG, avec sa liste en repli.
  • Sur mobile, la rivière est étroite : les longues briques réduisent la place des courbes.

Critères de réévaluation

-
  • La vue est peu ouverte : la retirer ou la fondre dans Familles.
  • Au-delà de dix fascicules, la vue « Tous » devient trop haute : n’afficher que les fascicules choisis.

En situationVue RéseauEn situation

+
  • La vue est peu ouverte : la retirer ou la fondre dans Familles.
  • Au-delà de dix fascicules, la vue « Tous » devient trop haute : n’afficher que les fascicules choisis.

En situationVue RéseauEn situation

ADR 0084ProposéSource Markdown

Ricochets : découper un mot de toutes ses façons, dont les compositions chaînées

  • Statut : Proposé
  • Complète : ADR 0053 (la lame, « Couper ici » et « Reprendre » ne changent pas ; la réponse peut porter plusieurs découpes) ; ADR 0068 (la lame repart après chaque coupe, sur un leurre) ; ADR 0044 (la maîtrise ne change pas) ; ADR 0007 (le serveur juge)
+

Contexte

+

Le format Découper (ADR 0053) attendait une seule découpe : celle de la composition préférée de la carte. L’application accepte pourtant déjà qu’un mot en ait plusieurs, et le joueur doit alors les trouver toutes (écologiste : écologie · iste et éco · logiste) ; le champ autres_coupes du manifeste porte ces découpes. Cette évolution a été livrée sans ADR, et le compilateur de contenu ne publiait jamais autres_coupes : sur le vrai catalogue, un mot se découpait toujours d’une seule façon.

+

Or le catalogue sait dire davantage. Une partie d’une composition est une unité, et cette unité peut être elle-même un mot composé : étymologiste est étymologie · iste, et étymologie est étymo- · -logie. Couper étymologiste en étymo · logie · iste est juste, et le joueur qui connaît le mot le sait.

+

Décision

+

Ce que le joueur fait

+
  • Rien de nouveau dans le geste : il pose des coupes comme dans l’ADR 0053. Chaque découpe juste est gardée, puis le joueur passe à la suivante tant qu’il en reste ; la dernière découpe juste achève la question.
  • Une découpe fausse arrête la question, fausse. Les découpes justes déjà trouvées ne comptent pas : une seule réponse compte par question (ADR 0065). Aucun crédit partiel.
  • La commande de réponse reste unique, envoyée à la dernière découpe : une découpe seule part à plat, plusieurs ensemble. Le serveur fait foi.
  • L’ordre des coupes, celui des découpes et les doublons ne comptent pas.
+

Les découpes d’un mot

+
  • La découpe préférée est celle de la composition préférée du mot : les frontières entre ses parties (coupes).
  • Chaque partie qui est elle-même un mot composé (sa propre composition préférée) peut se couper à son tour. Chaque partie compte pour un choix indépendant (coupée ou non, et de chacune de ses façons) : le mot a toutes les combinaisons de ces choix pour découpes justes. Étymologiste en a deux, [10] puis [5, 10] ; un mot dont deux parties se coupent en a jusqu’à quatre.
  • Une partie élidée dans le mot (biologie dans biologiste : segment [0, 6) pour un mot de huit lettres) est bornée par son segment : une coupe qui tomberait au-delà n’existe pas dans le mot.
  • Une partie ne se coupe pas si elle n’a pas de composition préférée aux segments continus, ou si elle reviendrait sur un mot déjà en cours (aucune boucle).
  • Plafonds de l’API : quatre découpes par mot et huit coupes par découpe. Au-delà de quatre découpes, aucune découpe supplémentaire n’est publiée : le joueur ne pourrait pas deviner lesquelles poser, mieux vaut la seule découpe préférée.
+

Les données

+
  • Le compilateur de contenu publie autres_coupes dans le bloc ricochets du manifeste, pour chaque mot qui a plus d’une découpe : des listes de positions triées, la préférée exclue. Des positions seulement, aucun texte copié. Le champ est facultatif : un manifeste sans autres_coupes se juge comme avant.
  • Les coupes équivalentes à lettre partagée (coupes_alternatives : hom · onyme et homo · nyme) restent un autre champ du manifeste, que le contenu ne publie pas encore ; cet ADR n’y touche pas.
+

Options envisagées

+

Un arbre de coupes jugé coupe par coupe, une commande par coupe

+

Écartée. Une question qui s’achève au fil des coupes demande un contrat de réponse à état (« continuer », « terminé », « faux »), une commande qui n’écrit rien tant que la question reste ouverte, et un jugement côté client et côté serveur. L’application juge déjà des découpes complètes : réutiliser autres_coupes donne le même parcours pour le joueur sans nouveau contrat.

+

Une question par niveau (« Recoupez étymologie »)

+

Écartée : la consigne dit alors qu’un morceau se coupe encore.

+

Publier un sous-ensemble quand il y a plus de quatre découpes

+

Écartée : le joueur serait tenu de poser des découpes qu’il ne peut pas deviner.

+

Conséquences

+

Positives

+
  • Les mots dont une partie est composée se découpent en entier ; le format mesure toute la chaîne.
  • Aucun changement de contrat, de base ni de code applicatif : le contenu publie ce que l’application sait déjà juger. L’API et la PWA ne changent pas.
  • Une donnée absente laisse le jeu comme avant.
+

Négatives

+
  • Le joueur repose les coupes communes (étymo · logie · iste demande [10] puis [5, 10], soit la coupe 10 deux fois).
  • Quatre découpes au plus : un mot dont plus de deux parties se coupent garde sa seule découpe préférée.
  • La justesse d’une découpe dépend de la saisie des compositions du contenu : une partie sans composition préférée ne se coupe pas.
+

Critères de réévaluation

+
  • Si des mots réels dépassent quatre découpes, relever le plafond de l’API plutôt que de les taire.
  • Si les joueurs trouvent pénible de reposer les coupes communes, passer à un parcours qui garde les coupes déjà posées d’une découpe à l’autre.

En situationLes ricochetsMaquette des ricochets

diff --git a/docs/adr/0053-decouper-glisser-une-lame-puis-valider.md b/docs/adr/0053-decouper-glisser-une-lame-puis-valider.md index 0b57ff7..71e8c3a 100644 --- a/docs/adr/0053-decouper-glisser-une-lame-puis-valider.md +++ b/docs/adr/0053-decouper-glisser-une-lame-puis-valider.md @@ -1,6 +1,6 @@ # ADR 0053 — Découper : glisser une lame, puis valider -- **Statut** : Proposé, place de la lame remplacée par l’[ADR 0068](0068-ricochets-moins-de-touchers-pour-decouper-et-assembler.md) : à l’arrivée et après chaque coupe, elle se pose au hasard sur une jointure qui n’est pas une coupe attendue. Le reste reste en vigueur. +- **Statut** : Proposé, plusieurs découpes par mot complétées par l’[ADR 0084](0084-ricochets-decouper-toutes-les-decoupes-justes.md), place de la lame remplacée par l’[ADR 0068](0068-ricochets-moins-de-touchers-pour-decouper-et-assembler.md) : à l’arrivée et après chaque coupe, elle se pose au hasard sur une jointure qui n’est pas une coupe attendue. Le reste reste en vigueur. - **Remplace partiellement** : [ADR 0044](0044-ricochets-reviser-et-maitriser-les-cartes.md), pour le format Découper : quatre découpages proposés, option « Découper en touchant le mot » écartée, et « un toucher répond » appliqué à ce format - **Complète** : [ADR 0007](0007-etat-et-economie-autoritaires.md) (la commande de réponse reste unique et sous autorité serveur) diff --git a/docs/adr/0084-ricochets-decouper-toutes-les-decoupes-justes.md b/docs/adr/0084-ricochets-decouper-toutes-les-decoupes-justes.md new file mode 100644 index 0000000..a8a18ad --- /dev/null +++ b/docs/adr/0084-ricochets-decouper-toutes-les-decoupes-justes.md @@ -0,0 +1,65 @@ +# ADR 0084 — Ricochets : découper un mot de toutes ses façons, dont les compositions chaînées + +- **Statut** : Proposé +- **Complète** : [ADR 0053](0053-decouper-glisser-une-lame-puis-valider.md) (la lame, « Couper ici » et « Reprendre » ne changent pas ; la réponse peut porter plusieurs découpes) ; [ADR 0068](0068-ricochets-moins-de-touchers-pour-decouper-et-assembler.md) (la lame repart après chaque coupe, sur un leurre) ; [ADR 0044](0044-ricochets-reviser-et-maitriser-les-cartes.md) (la maîtrise ne change pas) ; [ADR 0007](0007-etat-et-economie-autoritaires.md) (le serveur juge) + +## Contexte + +Le format *Découper* ([ADR 0053](0053-decouper-glisser-une-lame-puis-valider.md)) attendait une seule découpe : celle de la composition préférée de la carte. L’application accepte pourtant déjà qu’un mot en ait plusieurs, et le joueur doit alors les trouver toutes (*écologiste* : *écologie · iste* et *éco · logiste*) ; le champ `autres_coupes` du manifeste porte ces découpes. Cette évolution a été livrée sans ADR, et le compilateur de contenu ne publiait jamais `autres_coupes` : sur le vrai catalogue, un mot se découpait toujours d’une seule façon. + +Or le catalogue sait dire davantage. Une partie d’une composition est une unité, et cette unité peut être elle-même un mot composé : *étymologiste* est *étymologie · iste*, et *étymologie* est *étymo- · -logie*. Couper *étymologiste* en *étymo · logie · iste* est juste, et le joueur qui connaît le mot le sait. + +## Décision + +### Ce que le joueur fait + +- Rien de nouveau dans le geste : il pose des coupes comme dans l’ADR 0053. Chaque découpe juste est gardée, puis le joueur passe à la suivante tant qu’il en reste ; la dernière découpe juste achève la question. +- Une découpe fausse arrête la question, fausse. Les découpes justes déjà trouvées ne comptent pas : une seule réponse compte par question ([ADR 0065](0065-ricochets-la-maitrise-se-perd-et-se-regagne.md)). Aucun crédit partiel. +- La commande de réponse reste unique, envoyée à la dernière découpe : une découpe seule part à plat, plusieurs ensemble. Le serveur fait foi. +- L’ordre des coupes, celui des découpes et les doublons ne comptent pas. + +### Les découpes d’un mot + +- La **découpe préférée** est celle de la composition préférée du mot : les frontières entre ses parties (`coupes`). +- Chaque partie qui est elle-même un mot composé (sa propre composition préférée) peut se couper à son tour. Chaque partie compte pour un choix indépendant (coupée ou non, et de chacune de ses façons) : le mot a **toutes les combinaisons** de ces choix pour découpes justes. *Étymologiste* en a deux, `[10]` puis `[5, 10]` ; un mot dont deux parties se coupent en a jusqu’à quatre. +- Une partie **élidée** dans le mot (*biologie* dans *biologiste* : segment `[0, 6)` pour un mot de huit lettres) est bornée par son segment : une coupe qui tomberait au-delà n’existe pas dans le mot. +- Une partie ne se coupe pas si elle n’a pas de composition préférée aux segments continus, ou si elle reviendrait sur un mot déjà en cours (aucune boucle). +- Plafonds de l’API : **quatre découpes** par mot et huit coupes par découpe. Au-delà de quatre découpes, **aucune découpe supplémentaire n’est publiée** : le joueur ne pourrait pas deviner lesquelles poser, mieux vaut la seule découpe préférée. + +### Les données + +- Le compilateur de contenu publie `autres_coupes` dans le bloc `ricochets` du manifeste, pour chaque mot qui a plus d’une découpe : des listes de positions triées, la préférée exclue. Des positions seulement, aucun texte copié. Le champ est facultatif : un manifeste sans `autres_coupes` se juge comme avant. +- Les coupes équivalentes à lettre partagée (`coupes_alternatives` : *hom · onyme* et *homo · nyme*) restent un autre champ du manifeste, que le contenu ne publie pas encore ; cet ADR n’y touche pas. + +## Options envisagées + +### Un arbre de coupes jugé coupe par coupe, une commande par coupe + +Écartée. Une question qui s’achève au fil des coupes demande un contrat de réponse à état (« continuer », « terminé », « faux »), une commande qui n’écrit rien tant que la question reste ouverte, et un jugement côté client et côté serveur. L’application juge déjà des découpes complètes : réutiliser `autres_coupes` donne le même parcours pour le joueur sans nouveau contrat. + +### Une question par niveau (« Recoupez *étymologie* ») + +Écartée : la consigne dit alors qu’un morceau se coupe encore. + +### Publier un sous-ensemble quand il y a plus de quatre découpes + +Écartée : le joueur serait tenu de poser des découpes qu’il ne peut pas deviner. + +## Conséquences + +### Positives + +- Les mots dont une partie est composée se découpent en entier ; le format mesure toute la chaîne. +- Aucun changement de contrat, de base ni de code applicatif : le contenu publie ce que l’application sait déjà juger. L’API et la PWA ne changent pas. +- Une donnée absente laisse le jeu comme avant. + +### Négatives + +- Le joueur repose les coupes communes (*étymo · logie · iste* demande `[10]` puis `[5, 10]`, soit la coupe `10` deux fois). +- Quatre découpes au plus : un mot dont plus de deux parties se coupent garde sa seule découpe préférée. +- La justesse d’une découpe dépend de la saisie des compositions du contenu : une partie sans composition préférée ne se coupe pas. + +## Critères de réévaluation + +- Si des mots réels dépassent quatre découpes, relever le plafond de l’API plutôt que de les taire. +- Si les joueurs trouvent pénible de reposer les coupes communes, passer à un parcours qui garde les coupes déjà posées d’une découpe à l’autre. diff --git a/docs/adr/README.md b/docs/adr/README.md index ebd8bfd..6410a0b 100644 --- a/docs/adr/README.md +++ b/docs/adr/README.md @@ -66,7 +66,7 @@ Une modification importante se fait dans un nouvel ADR. Les corrections factuell | [0050](0050-cohortes-de-retention-et-statistiques-du-joueur.md) | Cohortes de rétention et statistiques du joueur, sans donnée personnelle nouvelle | Proposé | | [0051](0051-indices-a-la-carte.md) | Indices à la carte : silhouette, sens littéral, définition | Accepté | | [0052](0052-fusions-trompeuses-expliquees.md) | Fusions trompeuses expliquées : trompe-l’œil et mauvais homographe | Proposé | -| [0053](0053-decouper-glisser-une-lame-puis-valider.md) | Découper : glisser une lame, puis valider | Proposé, place de la lame remplacée par 0068 | +| [0053](0053-decouper-glisser-une-lame-puis-valider.md) | Découper : glisser une lame, puis valider | Proposé, place de la lame remplacée par 0068, plusieurs découpes par mot complétées par 0084 | | [0054](0054-fascicules-de-lancement-plus-gros-et-plus-rapproches.md) | Fascicules de lancement plus gros et plus rapprochés | Proposé | | [0055](0055-prononciation-des-mots.md) | Prononciation des mots : transcription phonétique, sans audio | Proposé, origine des transcriptions remplacée par 0060 | | [0056](0056-date-de-premiere-attestation.md) | Date de première attestation d’un mot | Proposé, source de la date remplacée par 0060 | @@ -109,3 +109,4 @@ Chaque ADR contient : 3. les options envisagées ; 4. les conséquences positives et négatives ; 5. les critères de réévaluation. +| [0084](0084-ricochets-decouper-toutes-les-decoupes-justes.md) | Ricochets : découper un mot de toutes ses façons, dont les compositions chaînées | Proposé | diff --git a/docs/game-design.md b/docs/game-design.md index 89e1d38..987b7ed 100644 --- a/docs/game-design.md +++ b/docs/game-design.md @@ -302,7 +302,7 @@ La page Quêtes ([ADR 0042](adr/0042-page-quetes-et-recompenses-a-recuperer.md)) - **Fascicules** : les jalons de chaque fascicule ([ADR 0038](adr/0038-indices-a-prix-croissant-et-format-des-jalons.md)). Le 2ᵉ jalon d’un fascicule débloque le suivant ([ADR 0069](adr/0069-deblocage-progressif-des-fascicules.md)). Sous les jalons, les **quêtes de collection** du fascicule : tous ses préfixes, tous ses suffixes, tous ses mots communs, peu communs ou rares, hors légendaires ([ADR 0082](adr/0082-quetes-de-collection-par-fascicule.md), proposé). - **Au long cours** : des quêtes à paliers qui traversent les fascicules, sur les langues, les familles, les transformations, la maîtrise et les cartes de lecteur. Aucune ne compte les légendaires, sauf la première trouvée. -Les **ricochets** ([ADR 0044](adr/0044-ricochets-reviser-et-maitriser-les-cartes.md)) sont de courtes questions sur les cartes déjà trouvées : le sens d'une brique, la brique d'un sens, le mot d'un sens littéral, sens littéral ou sens actuel, découper un mot (le joueur glisse une lame sur le mot, pose ses coupes, puis valide : [ADR 0053](adr/0053-decouper-glisser-une-lame-puis-valider.md)), relier des paires, assembler un mot (le joueur choisit un préfixe et un suffixe pour former le mot dont il lit la définition actuelle : [ADR 0067](adr/0067-ricochets-assembler-un-mot-depuis-sa-definition.md)). Ils ne consomment rien, n'ont pas de chronomètre et rendent une carte maîtrisée après trois bonnes réponses sur trois jours différents. Une carte maîtrisée reste dans le tirage, au plus deux par séance de cinq questions ; une erreur la fait descendre au niveau 2, elle perd sa maîtrise et revient le lendemain, et il lui faut de nouveau trois bonnes réponses au niveau 3 sur trois jours différents ([ADR 0065](adr/0065-ricochets-la-maitrise-se-perd-et-se-regagne.md)). +Les **ricochets** ([ADR 0044](adr/0044-ricochets-reviser-et-maitriser-les-cartes.md)) sont de courtes questions sur les cartes déjà trouvées : le sens d'une brique, la brique d'un sens, le mot d'un sens littéral, sens littéral ou sens actuel, découper un mot (le joueur glisse une lame sur le mot et pose ses coupes : [ADR 0053](adr/0053-decouper-glisser-une-lame-puis-valider.md) ; si le mot se coupe de plusieurs façons, par exemple parce qu’une de ses parties est elle-même un mot composé, il les trouve toutes, et une découpe fausse arrête la question : [ADR 0084](adr/0084-ricochets-decouper-toutes-les-decoupes-justes.md)), relier des paires, assembler un mot (le joueur choisit un préfixe et un suffixe pour former le mot dont il lit la définition actuelle : [ADR 0067](adr/0067-ricochets-assembler-un-mot-depuis-sa-definition.md)). Ils ne consomment rien, n'ont pas de chronomètre et rendent une carte maîtrisée après trois bonnes réponses sur trois jours différents. Une carte maîtrisée reste dans le tirage, au plus deux par séance de cinq questions ; une erreur la fait descendre au niveau 2, elle perd sa maîtrise et revient le lendemain, et il lui faut de nouveau trois bonnes réponses au niveau 3 sur trois jours différents ([ADR 0065](adr/0065-ricochets-la-maitrise-se-perd-et-se-regagne.md)). Toutes les récompenses sont affichées d'avance et attendent d'être récupérées ; aucune n'expire. diff --git a/docs/modele-donnees.md b/docs/modele-donnees.md index eb3236c..0bfdf12 100644 --- a/docs/modele-donnees.md +++ b/docs/modele-donnees.md @@ -467,6 +467,7 @@ Un fascicule à paraître n'apparaît pas dans l'index, même sous forme de comp | `pli` | Briques tirables (ses préfixes et suffixes, nouveaux ou repris ; jamais un mot, [ADR 0035](adr/0035-plis-d-affixes-ponderes-par-la-rarete.md)), poids des raretés non légendaires, chance fixe des légendaires (`chance_legendaire_pour_mille`, 12, soit 1,2 %) et seuil de leur garantie (100 plis, [ADR 0043](adr/0043-legendaires-chance-fixe-hors-garanties-et-secretes.md)), base d'encre, barèmes des doublons : les paramètres d'équilibrage de ce fascicule. | | `cartes` | Pour chaque unité déclarée (`fascicule_unite`) : identifiant opaque, rôle (`resultat` ou `ingredient`), chemin haché de sa carte, chemin de sa silhouette ; pour un résultat, sa `difficulte` ([ADR 0047](adr/0047-un-tiers-facile-un-tiers-moyen-un-tiers-difficile.md)). | | `langues` | Pour chaque langue citée par ses cartes (langue d'une unité ou d'un étymon) : identifiant et chemin haché de sa silhouette ([ADR 0023](adr/0023-textures-des-cartes.md)). Comme l'index ne cite que des manifestes, c'est le manifeste qui mène aux silhouettes des langues et la tâche de parution les promeut avec le fascicule. | +| `ricochets` | De quoi juger un ricochet sans lire un texte : pour chaque brique son sens affiché, sa classe de sens et sa colonne (préfixe ou suffixe) ; pour chaque mot sa classe de sens littéral, ses `coupes` (la découpe préférée), ses `autres_coupes` (les autres découpes justes, dont celles des parties qui sont elles-mêmes des mots composés) et son `assemblage`. Des identifiants et des positions seulement ([ADR 0044](adr/0044-ricochets-reviser-et-maitriser-les-cartes.md), [ADR 0067](adr/0067-ricochets-assembler-un-mot-depuis-sa-definition.md), [ADR 0084](adr/0084-ricochets-decouper-toutes-les-decoupes-justes.md)). | | `recettes` | Identifiant opaque et chemin haché de chaque recette du fascicule. | | `exclusions` | Chemin haché du fichier d'exclusions. | | `jalons` | Jalons du fascicule : `id`, nombre de `decouvertes` qui l'atteint, briques du `pli` déterministe, jamais une légendaire, et `sabliers` donnés ([ADR 0012](adr/0012-briques-rationnees.md), [ADR 0038](adr/0038-indices-a-prix-croissant-et-format-des-jalons.md), [ADR 0043](adr/0043-legendaires-chance-fixe-hors-garanties-et-secretes.md)). | diff --git a/outils/src/bin/build_adr.rs b/outils/src/bin/build_adr.rs index 07d22a0..8e8515d 100644 --- a/outils/src/bin/build_adr.rs +++ b/outils/src/bin/build_adr.rs @@ -272,6 +272,13 @@ const XREFS: &[(&str, &[(&str, &str)])] = &[ ("maquettes.html#m-26", "Maquette des ricochets"), ], ), + ( + "0084", + &[ + ("interfaces.html#i-26", "Les ricochets"), + ("maquettes.html#m-26", "Maquette des ricochets"), + ], + ), ( "0069", &[