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
reference:memoire:etats:start [2024/09/22 19:36] – [Exemple complet] jonathanreference:memoire:etats:start [2026/05/22 21:48] (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)
 +  * ''connu'' ≠ ''secret'' ≠ ''caché'' ≠ ''discret'' (un objet rendu connu 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é''.
 +
 +==== Déclarer une implication ====
 +
 +Syntaxe : ''<état> implique <cible>.'' ou ''<état> implique <cible1>, <cible2> et <cible3>.''
 +
 +<code donjon>
 +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.
 +
 +==== Déclarer une exclusion ====
 +
 +Syntaxe : ''<état> exclut <cible>.'' ou ''<état> exclut <cible1>, <cible2> et <cible3>.''
 +
 +<code donjon>
 +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é (car ''fendu'' exclut ''intact'' indirectement via la deuxième déclaration). Pour créer un groupe d’états mutuellement exclusifs (comme ''solide''/''liquide''/''gazeux''), il suffit d’écrire les exclusions dans les deux sens.
 +
 +==== 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.
  
 ===== Tester les états ===== ===== Tester les états =====
reference/memoire/etats/start.1727026585.txt.gz · Dernière modification : (modification externe)