Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:memoire:etats:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
reference:memoire:etats:start [2022/10/11 23:27] jonathanreference:memoire:etats:start [2026/06/16 21:50] (Version actuelle) – modification externe 127.0.0.1
Ligne 42: Ligne 42:
  
 Remarque: l’état ''clair'' est ajouté automatiquement au lieu car il y a une //bascule// entre ''clair'' et ''obscur''. Remarque: l’état ''clair'' est ajouté automatiquement au lieu car il y a une //bascule// entre ''clair'' et ''obscur''.
 +
 +===== Relations entre états =====
 +
 +Certains états entretiennent des relations qui automatisent leur gestion. Trois mécanismes existent — voir aussi la légende sur [[reference:memoire:etats:etats_de_base|Les états de base]].
 +
 +==== Bascules (↔) ====
 +
 +Deux états en bascule sont complémentaires : appliquer l’un retire automatiquement l’autre, et inversement.
 +
 +<code donjon>
 +La torche est un objet allumé.
 +
 +action souffler sur la torche :
 +  changer la torche est éteinte.
 +fin action
 +</code>
 +
 +=> Après ''changer la torche est éteinte'', l’état ''allumé'' est retiré automatiquement (bascule ''allumé'' ↔ ''éteint'').
 +
 +Bascules courantes : ''ouvert'' ↔ ''fermé'', ''clair'' ↔ ''obscur'', ''verrouillé'' ↔ ''déverrouillé'', ''actionné'' ↔ ''arrêté'', ''parlant'' ↔ ''muet'', ''fixé'' ↔ ''transportable''.
 +
 +==== Implications (→) ====
 +
 +Appliquer un état qui en implique d’autres ajoute aussi tous les états impliqués, en cascade.
 +
 +<code donjon>
 +La lettre compromettante est un objet secret.
 +</code>
 +
 +=> La lettre reçoit ''secret'', mais aussi ''caché'' et ''discret'' par implications en chaîne (''secret'' → ''caché'' → ''discret'').
 +
 +<code donjon>
 +si la lettre compromettante est discrète :
 +  dire "Personne ne la remarquerait dans une pile de papiers.".
 +fin si
 +</code>
 +
 +=> Le test renvoie vrai, alors qu’on n’a déclaré que ''secret''.
 +
 +==== Contradictions / exclusions (≠) ====
 +
 +Appliquer un état qui en contredit d’autres retire ces derniers automatiquement. C’est ce qu’on appelle aussi une //exclusion mutuelle//.
 +
 +<code donjon>
 +L’eau est un objet liquide dans la marmite.
 +
 +action geler l’eau :
 +  changer l’eau est solide.
 +  dire "L’eau devient un bloc de glace.".
 +fin action
 +</code>
 +
 +=> Après ''changer l’eau est solide'', l’état ''liquide'' est retiré automatiquement (contradiction ''solide'' ≠ ''liquide'' ≠ ''gazeux'' : les trois s’excluent mutuellement).
 +
 +Autres contradictions courantes :
 +  * ''intact'' ≠ ''déplacé'' ≠ ''modifié'' (un objet manipulé n’est plus intact)
 +  * ''familier'' ≠ ''secret'' ≠ ''caché'' ≠ ''discret'' (un objet rendu familier cesse d’être secret)
 +
 +===== Déclarer ses propres relations entre états =====
 +
 +Vous pouvez définir vous-même les relations entre les états que vous créez. Ces déclarations se placent dans la //description du monde//, avant ou après l’utilisation des états concernés.
 +
 +==== Déclarer une bascule ====
 +
 +Syntaxe : ''<sujet> et <opposé> forment une bascule.''
 +
 +<code donjon>
 +sec et mouillé forment une bascule.
 +
 +La serviette est un objet sec dans la salle de bain.
 +
 +action tremper la serviette :
 +  changer la serviette est mouillée.
 +  dire "La serviette est trempée.".
 +fin action
 +</code>
 +
 +=> Après l’action, ''sec'' est retiré et ''mouillé'' ajouté automatiquement. Inversement, ''changer la serviette est sèche'' retire ''mouillé''.
 +
 +[[djnc>wiki_etats_bascule_linge|tester un exemple de bascule]]
 +
 +==== Déclarer une implication ====
 +
 +Syntaxe : ''<état> implique <cible>.'' ou ''<état> implique <cible1>, <cible2> et <cible3>.''
 +
 +<code donjon>
 +vu est un état.
 +mentionné est un état.
 +vu implique mentionné.
 +secret implique caché, invisible et discret.
 +
 +Le passage dérobé est un lieu secret.
 +</code>
 +
 +=> Le passage dérobé reçoit automatiquement ''caché'', ''invisible'' et ''discret'' en plus de ''secret''.
 +
 +L’implication peut se chaîner : si vous déclarez aussi ''caché implique discret.'', alors ''secret'' implique ''caché'' qui implique ''discret'' — la cascade se propage.
 +
 +ℹ️ Les états d’une implication sont **créés automatiquement** au besoin (paramètre //création automatique des états//, actif par défaut) ; vous pouvez aussi les déclarer (''X est un état.''). Avec ''désactiver création automatique des états.'', un état non déclaré provoque une erreur. De plus, l’état impliqué applique **ensuite ses propres relations** (bascule, contradiction).
 +
 +[[djnc>wiki_etats_implication_dragon|tester un exemple d’implication]]
 +
 +==== Déclarer une exclusion ====
 +
 +Syntaxe : ''<état> exclut <cible>.'' ou ''<état> exclut <cible1>, <cible2> et <cible3>.''
 +
 +<code donjon>
 +fendu est un état.
 +déplacé exclut intact.
 +intact exclut déplacé, modifié et fendu.
 +
 +Le vase est un objet intact sur la table.
 +
 +action briser le vase :
 +  changer le vase est fendu.
 +  dire "Le vase se fend en deux.".
 +fin action
 +</code>
 +
 +=> Après l’action, ''intact'' est retiré (l’exclusion ''intact'' ≠ ''fendu'' agit dans les deux sens à l’exécution : appliquer ''fendu'' chasse ''intact''). L’état ''fendu'' est créé automatiquement si besoin (ou déclaré explicitement). Pour un groupe d’états mutuellement exclusifs (comme ''solide''/''liquide''/''gazeux''), préférez la forme dédiée ''solide, liquide et gazeux se contredisent.''.
 +
 +==== Bascule, implication ou exclusion : lequel choisir ? ====
 +
 +  * **Bascule** : exactement //deux// états symétriques où l’un implique l’absence de l’autre, et vice-versa. Ex : ''ouvert''/''fermé''.
 +  * **Implication** : relation //asymétrique// — appliquer A entraîne B, mais pas l’inverse. Ex : ''secret'' → ''caché'' (un objet caché n’est pas forcément secret).
 +  * **Exclusion** : un état //chasse// d’autres états, sans imposer de réciproque. Ex : ''déplacé'' chasse ''intact'', mais l’on peut redevenir ''intact'' sans automatisme.
 +  * **Groupe** : plusieurs états mutuellement exclusifs deux à deux (''A, B et C se contredisent.''). Ex : ''solide''/''liquide''/''gazeux''.
 +
 +La page [[reference:definitions:etats_personnalises|États personnalisés]] détaille les cinq formes de déclaration et propose un mini-jeu complet à tester.
  
 ===== Tester les états ===== ===== Tester les états =====
Ligne 59: Ligne 188:
 <code donjon> <code donjon>
 Le titre du jeu est "Noir". Le titre du jeu est "Noir".
-L’auteur du jeu est "zigotteau". +L’auteur du jeu est "zigoteau".
-   +
-chapitre "description du monde"+
  
 +-- description du monde
 +
 +Le grenier est un lieu.
 +Il est obscur.
 +
 +La valise est un contenant dans le grenier.
 +Elle est fermée et ouvrable.
 + 
 La lampe est un objet éteint dans l’inventaire. La lampe est un objet éteint dans l’inventaire.
 Le joueur se trouve dans le grenier. Le joueur se trouve dans le grenier.
  
-Le grenier est un lieu. +-- actions et règles spéciales
-  Il est obscur. +
-  La valise est un contenant dans le grenier. +
-  Elle est fermée et ouvrable. +
-   +
-chapitre "actions et règles spéciales"+
  
-le joueur peut allumer la lampe: +action allumer la lampe: 
-  changer le grenier n’est plus obscur.+  changer le grenier est clair.
   changer la lampe est allumée.   changer la lampe est allumée.
   dire "À présent je vois comme en plein jour !".   dire "À présent je vois comme en plein jour !".
 +fin action
  
-avant regarder, regarder la boite magique ou examiner la boite magique:+règle avant regarder, regarder un objet ou examiner un objet:
   si ici est obscur:   si ici est obscur:
     dire "Je ne vois rien.".     dire "Je ne vois rien.".
     arrêter l’action.     arrêter l’action.
-  fin si. +  fin si 
-   +fin règle 
-avant commencer le jeu:+ 
 +règle avant commencer le jeu:
   dire "Il fait noir.".   dire "Il fait noir.".
   stopper l’action.   stopper l’action.
 +fin règle
 </code> </code>
  
 => ''éteint'', ''allumé'', ''obscur'', ''fermé'' et ''ouvrable'' sont des //états//. => ''éteint'', ''allumé'', ''obscur'', ''fermé'' et ''ouvrable'' sont des //états//.
 +
 +{{tag>état états etat etats bascule bascules implication implications exclusion exclusions contradiction contradictions état_personnalisé etat_personnalise changer attribut mémoire memoire}}
  
  
reference/memoire/etats/start.1665523620.txt.gz · Dernière modification : (modification externe)