====== 7. Trois rires, trois mécaniques ======
Chapitre final. On assemble **trois mécaniques DSL différentes**, une par double triste, pour fabriquer le cœur du jeu. Et on referme la trame avec le twist Crépu.
À chaque rire arraché, le joueur est **automatiquement renvoyé côté joyeux** ; au troisième, la malédiction de Crépu se brise et le jeu se termine.
===== Paire 1 — Pétunie : un QCM par réactions structurées =====
Pétunie monologue sur trois sujets : son **nez**, ses **chaussures**, ses **pieds**. Seul l’un des trois la fait rire — il faut deviner lequel en l’interrogeant via ''demander X à Pétunie''. C’est un **QCM déguisé**, modélisé entièrement par des réactions structurées.
réactions de Pétunie:
basique:
si Pétunie est triste:
dire "« Bah… bof. Je sais plus rire. Mon nez est tombé. Mes chaussures m’écrasent. Et j’ai un truc bizarre aux pieds. Si tu trouves un sujet qui me fait rire, dis-le-moi. »".
sinon
dire "« Hi hi hi… mes pieds… hi hi… »".
fin si.
concernant son nez:
dire "« Ah oui, le nez. Je l’ai cherché. Pas trouvé. Pas drôle. »".
concernant ses chaussures:
dire "« Trop grandes. J’ai l’impression de marcher dans deux barques. »".
concernant ses pieds:
si Pétunie est triste:
dire "« Mes pieds ? Pourquoi mes pieds ? »{n}Pétunie baisse les yeux. Ses orteils remuent tout seuls, comme deux familles de poissons hors de l’eau. Elle pouffe — puis éclate de rire.".
changer Pétunie est joyeuse.
changer les rires augmentent de 1.
exécuter la routine retourner.
sinon
dire "« Mes pieds… hi hi… »".
fin si.
concernant un sujet inconnu:
dire "« Hmm, je vois pas. Reviens-y plus tard. »".
fin réactions
[[djnc>wiki_tuto-cirque_07_a_petunie_qcm|tester cet exemple]] — version isolée, juste Pétunie.
> 💡 Le **basique** sert ici deux fonctions : (a) annoncer les sujets possibles au joueur via le monologue, (b) gérer le cas « déjà fait rire » via un ''si'' sur l’état. Pratique.
📚 Pour aller plus loin : [[reference:routines:reaction:start|Réactions]], [[reference:instructions:controle:si:start|L’instruction ''si'']].
===== Paire 2 — Mucia : un objet caché dans la description =====
Mucia est désespérée par ses escargots récalcitrants. La **description de sa roulotte** contient un détail planté : « //une feuille de laitue paraît anormalement brillante// ». En l’''examiner'', le joueur découvre une **marionnette d’escargot** cachée derrière. Donnée à Mucia, elle déclenche un fou rire.
Côté DSL, deux outils :
* L’**état ''invisible''** sur la marionnette → elle existe mais n’apparaît ni au ''regarder'' ni à l’inventaire avant qu’on la révèle.
* Une **règle après ''examiner''** sur la feuille brillante → bascule la marionnette en ''visible''.
-- La marionnette est invisible au départ.
La marionnette d’escargot est un objet invisible dans la roulotte de Mucia.
Sa description est "Une marionnette à doigt en forme d’escargot, deux yeux globuleux dressés sur des antennes ressorts.".
-- La feuille brillante : indice planté dans la description du lieu.
La feuille de laitue brillante est un objet décoratif fixé dans la roulotte de Mucia.
Sa description est "Une feuille de laitue trop brillante. Elle est en celluloïd. Quelque chose est coincé derrière.".
-- Révélation.
règle après examiner la feuille de laitue brillante:
si la marionnette d’escargot est invisible:
dire "En détachant la feuille de celluloïd, vous découvrez glissée derrière elle une petite marionnette d’escargot rigolote.".
changer la marionnette d’escargot est visible.
sinon
dire "Vous avez déjà décollé la feuille.".
fin si
fin règle
-- Le rire.
règle après donner la marionnette d’escargot à Mucia:
si Mucia est triste:
dire "Vous tendez la marionnette à Mucia. Elle l’enfile sur son index, l’agite — et ses escargots se redressent un à un. « OH ! Mais c’est génial ! » s’écrie Mucia, et elle éclate de rire.".
changer Mucia est joyeuse.
changer les rires augmentent de 1.
exécuter la routine retourner.
fin si
fin règle
[[djnc>wiki_tuto-cirque_07_b_mucia_cache|tester cet exemple]] — version isolée, juste Mucia.
> 💡 ''invisible'' est un **état intégré** : pas besoin de le déclarer. On bascule vers son opposé ''visible'' avec ''changer''.
📚 Pour aller plus loin : [[reference:memoire:etats:start|États intégrés]] (visible, invisible, secret, caché, …).
===== Paire 3 — Anatolette : un hochet itinérant =====
Anatolette miaule dans le chapiteau du miroir : son **hochet à grelot** a été emporté par le vent. Le hochet **change de lieu à chaque action du joueur**, en cycle entre les quatre lieux du cirque-miroir. Le joueur doit donc anticiper — ou se précipiter — pour le ''prendre''.
C’est la mécanique la plus subtile : on greffe une **règle ''après une action quelconque''** qui pivote le hochet à chaque tour.
après une action quelconque:
terminer l’action avant.
si l’infinitif de l’action n’est ni effacer ni regarder ni commencer ni afficher ni aller ni examiner ni inventaire:
si le joueur ne possède pas le hochet à grelot:
si le hochet à grelot est dans la place ternie:
déplacer le hochet à grelot dans la roulotte de Pétunie.
sinonsi le hochet à grelot est dans la roulotte de Pétunie:
déplacer le hochet à grelot dans la roulotte de Mucia.
sinonsi le hochet à grelot est dans la roulotte de Mucia:
déplacer le hochet à grelot dans le chapiteau du miroir.
sinonsi le hochet à grelot est dans le chapiteau du miroir:
déplacer le hochet à grelot dans la place ternie.
fin si
dire "{n}{/Une rafale de vent — le tintement du grelot s’éloigne./}".
fin si.
fin si.
Le filtre ''si l’infinitif de l’action n’est ni effacer ni regarder ni commencer ni afficher ni aller ni examiner ni inventaire'' a deux fonctions :
* Ignorer les **méta-commandes** (''effacer'', ''afficher'', ''regarder'', ''inventaire''…) qui ne « consomment » pas vraiment un tour.
* Ignorer ''aller'' et ''examiner'' pour laisser au joueur le temps de se déplacer et d’observer sans que le hochet ne file.
Et la condition ''si le joueur ne possède pas le hochet à grelot'' évite que la routine ne déplace l’objet une fois qu’il est dans l’inventaire.
règle après donner le hochet à grelot à la chatonne Anatolette:
si la chatonne Anatolette est triste:
dire "Vous tendez le hochet à la chatonne. Elle le serre contre elle, ronronne comme un moteur, puis comme un avion, puis explose en un éclat de rire félin qui résonne sous la toile rapiécée.".
changer la chatonne Anatolette est joyeuse.
changer les rires augmentent de 1.
exécuter la routine retourner.
fin si
fin règle
[[djnc>wiki_tuto-cirque_07_c_anatolette_temps|tester cet exemple]] — version isolée, juste Anatolette et son hochet.
📚 Pour aller plus loin : [[reference:temps:start|Temps et chronologie]], [[reference:routines:simple|Les routines simples]].
===== L’auto-retour et le compteur =====
Chaque rire est compté dans un **compteur** ''rires'', et le joueur est téléporté **automatiquement** dans la roulotte du maître Aurélien. On factorise tout ça dans une **routine simple** appelée par les trois mécaniques :
Les rires est un compteur initialisé à 0.
Les rires est affiché en haut à droite.
routine retourner:
déplacer le joueur dans la roulotte du maître Aurélien.
si les rires valent 3:
-- twist final : Crépu se révèle
dire "{n}Crépu saute sur l’établi. Il vous fixe de son œil unique, qui semble plus brillant qu’avant.".
dire "{n}« Trois rires arrachés au miroir, » dit-il. « Tu m’as libéré, l’apprenti·e. Cent ans que j’attendais ça. »".
dire "{n}Crépu s’étire, ses contours flouent, et il se redresse — sur deux pattes. Devant vous, un vieux prestidigitateur en redingote, l’œil unique étincelant, s’incline.".
dire "{n}« Étoile était mon nom, jadis. Aurélien, mon dernier élève — il m’a piégé là dedans. Mais le miroir a fini par s’éroder, et tu as fini le travail. »".
terminer le jeu.
sinon
dire "{n}{/Le décor se replie. Vous êtes de retour côté joyeux./}".
fin si.
fin routine
> 💡 Une **routine simple** factorise du code réutilisé. Ici, les trois mécaniques de rire appellent toutes ''exécuter la routine retourner'' — un seul endroit pour gérer le compteur, le téléport et le twist final.
📚 Pour aller plus loin : [[reference:routines:simple|Routines simples]], [[reference:memoire:compteurs|Compteurs]], [[reference:instructions:terminer|''terminer le jeu'']].
===== Le jeu complet =====
[[djnc>wiki_tuto-cirque_07_d_jeu_complet|tester le jeu complet]] — l’ensemble du tutoriel, intégré en un seul scénario jouable.
Parcours conseillé :
- ''lire la note'' (chez Aurélien) pour la mise en bouche.
- ''parler à Crépu'', ''demander le tour'', ''demander le miroir'' (laissez Crépu en dire la moitié).
- ''prendre chapeau'', ''prendre baguette'', ''prendre foulard'', ''prendre miroir'', ''secouer foulard''.
- ''réaliser le tour'' — bienvenue côté miroir.
- Faites rire les trois doubles, dans l’ordre que vous voulez. Entre chaque rire, vous êtes ramené·e chez Aurélien ; il suffit de ''réaliser le tour'' à nouveau (les accessoires sont déjà déployés).
===== Bravo ! =====
Vous avez construit un mini-jeu Donjon FI **intermédiaire complet** : deux mondes parallèles, six PNJ (dont un animal parlant à double identité), un système d’accessoires avec états personnalisés, une action perso à phases, un compteur, trois mécaniques de jeu différentes, une routine factorisée et un twist final.
==== Pour aller plus loin ====
Quelques pistes pour étoffer //Le Cirque Étoile// (ou votre propre projet) :
* Une **quatrième paire miroir** avec une mécanique encore inédite (un mini-puzzle de combinaison ?).
* Un **score qualitatif** : compter les rires, mais aussi les sourires partiels (mécanique à mi-chemin).
* Une **option « parler à Crépu » dans le cirque-miroir** : que dirait-il dans le miroir ? Il y est aussi… mais sous quelle forme ?
* Une **fin alternative** où l’apprenti·e décide de //rester// dans le miroir, pour y monter son propre numéro.
Le code source intégral est dans [[djnc>wiki_tuto-cirque_07_d_jeu_complet|wiki_tuto-cirque_07_d_jeu_complet]] — c’est à vous de jouer.
----
Retour : [[tutoriels:cirque:start|Sommaire du tutoriel]].