Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:instructions:controle:si:start

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
reference:instructions:controle:si:start [2022/10/11 22:00] – créée jonathanreference:instructions:controle:si:start [2026/06/16 21:50] (Version actuelle) – modification externe 127.0.0.1
Ligne 6: Ligne 6:
 ===== Verbes utilisables dans les conditions ===== ===== Verbes utilisables dans les conditions =====
  
-<nspages reference:instructions:si:verbes -tree -r -exclude -subns -pagesInNs -h1 -textNs="">+<nspages reference:instructions:controle:si:verbes -tree -r -exclude -subns -pagesInNs -h1 -textNs="">
  
 ===== Comment écrire une condition ===== ===== Comment écrire une condition =====
Ligne 30: Ligne 30:
 fin règle fin règle
 </code> </code>
 +
 +=== Plusieurs cas : sinonsi ===
 +
 +Pour enchaîner plusieurs cas, intercalez une ou plusieurs branches ''sinonsi'' entre le ''si'' et le ''sinon'' final. Le moteur s’arrête à la première branche vraie.
 +
 +<code donjon>
 +si le niveau vaut 1:
 +  dire "Débutant.".
 +sinonsi le niveau vaut 2:
 +  dire "Confirmé.".
 +sinon
 +  dire "Expert.".
 +fin si
 +</code>
 +
 +[[djnc>wiki_conditions_branches|tester si / sinonsi / sinon]]
  
 ==== Dans un texte ==== ==== Dans un texte ====
Ligne 36: Ligne 52:
 dire "Vous êtes fatigué et [si le joueur est énervé]énervé[sinon]paisible[fin si]." dire "Vous êtes fatigué et [si le joueur est énervé]énervé[sinon]paisible[fin si]."
 </code> </code>
 +
 +===== Désigner le sujet par sa position =====
 +
 +Quand plusieurs objets se ressemblent, on peut préciser **lequel** tester d’après **où il se trouve**, avec ''situé(e)(s) (dans|sur|sous) <cible>'' (et ''… ici''). Le locateur choisit le sujet, puis le verbe (''est'', ''contient''…) teste cet objet précis :
 +
 +<code donjon>
 +si la clé située sur la table est rouge, dire "C'est la bonne clé.".
 +si le sol situé dans la cuisine est sale, dire "Le carrelage est gras.".
 +si la torche située ici est allumée, dire "La salle est éclairée.".
 +</code>
 +
 +C’est particulièrement utile avec un [[reference:definitions:fonds|fond « propre à chaque lieu »]], dont chaque lieu possède sa propre instance — voir un exemple jouable sur la [[reference:definitions:fonds#dans_une_condition|page des fonds]].
 +
 +<note important>Dans une condition, utilisez **uniquement** la forme ''situé'' (''la clé **située** sur la table''). La forme ''qui se trouve'' n’y est **pas** reconnue : elle entre en conflit avec le verbe « se trouver » (test de position) et la condition serait silencieusement fausse.</note>
 +
 +Ne confondez pas les deux usages : ''si le joueur **se trouve** dans la tour'' //teste une position// (le joueur est-il là ?), tandis que ''si le sol **situé** dans la cuisine est sale'' //choisit une instance puis teste son état//. Pour le test de position, voir [[reference:instructions:controle:si:verbes:se_trouver|se trouver]].
 +
 +===== Comparer un nombre =====
 +
 +Pour un compteur ou une valeur numérique :
 +
 +^ Forme ^ Vraie quand… ^
 +| ''vaut N'' | la valeur est égale à N |
 +| ''atteint N'' | la valeur est supérieure ou égale à N (''≥ N'') |
 +| ''dépasse N'' | la valeur est strictement supérieure à N (''> N'') |
 +| ''n’atteint pas N'' | la valeur est strictement inférieure à N (''< N'') |
 +| ''ne dépasse pas N'' | la valeur est inférieure ou égale à N (''≤ N'') |
 +
 +<code donjon>
 +si le score atteint 100, dire "Vous gagnez !".
 +si les points de vie n’atteignent pas 1, dire "Vous avez perdu.".
 +</code>
 +
 +[[djnc>wiki_conditions_comparateurs|tester les comparateurs]]
 +
 +===== Combiner plusieurs conditions =====
 +
 +Pour relier **deux conditions complètes** (chacune avec son propre sujet et son propre verbe), utilisez ''et si'' / ''et que'' (les deux doivent être vraies) ou ''ou si'' / ''ou que'' (au moins une vraie) :
 +
 +<code donjon>
 +si la lampe est allumée et si la trappe est ouverte, dire "Vous voyez le passage.".
 +si la lampe est éteinte ou si la trappe est ouverte, dire "Quelque chose cloche.".
 +</code>
 +
 +<WRAP important>Pour relier **deux conditions distinctes**, écrivez ''et si'' / ''ou si'' (et non ''et'' / ''ou'' tout seuls). ''et'' / ''ou'' seuls servent à **partager un même sujet** : ''si le joueur possède la couronne **et** le sceptre'' (un seul verbe, deux compléments).</WRAP>
 +
 +==== Grouper avec des parenthèses ====
 +
 +Les parenthèses regroupent des sous-conditions pour maîtriser l’ordre d’évaluation :
 +
 +<code donjon>
 +si (la lampe est éteinte ou si la lampe est allumée) et si la trappe est ouverte:
 +  dire "La trappe est ouverte, quel que soit l’état de la lampe.".
 +fin si
 +</code>
 +
 +==== soit … soit … (exactement un) ====
 +
 +''soit A soit B'' est vrai lorsque **exactement une** des deux conditions est vraie (ni les deux, ni aucune) :
 +
 +<code donjon>
 +si le moule est soit beurré soit fariné, dire "Vous avez préparé le moule (mais pas les deux).".
 +</code>
 +
 +==== Exclure : ni … ni … / mais pas ====
 +
 +<code donjon>
 +si le joueur ne possède ni l’anneau ni le bouclier, dire "Vous êtes sans protection.".
 +si la trappe est ouverte mais pas fermée, dire "Le passage est dégagé.".
 +</code>
 +
 +[[djnc>wiki_conditions_combiner|tester ces combinaisons]]
 +
 +===== Sujets spéciaux =====
 +
 +Certains sujets de condition ne désignent pas un élément du jeu :
 +
 +^ Sujet ^ Exemple ^ Vrai quand… ^
 +| ''le jeu'' | ''si le jeu est commencé'' | la partie a démarré |
 +| ::: | ''si le jeu est terminé'' | la partie est finie (après [[reference:instructions:terminer|terminer le jeu]]) |
 +| ''la réponse'' | ''si la réponse est "limonade"'' | le joueur a donné cette réponse au dernier [[reference:instructions:controle:choisir|choix]] |
 +| ::: | ''si la réponse commence par "café"'' | la réponse commence/termine par ce texte — voir [[reference:instructions:controle:si:verbes:commencer_terminer|commencer par / terminer par]] |
 +| ''l’infinitif de l’action'' | ''si l’infinitif de l’action est prendre'' | dans une [[reference:routines:regle:start|règle]], l’action en cours utilise ce verbe |
 +
 +L’infinitif accepte aussi la forme « ni … ni … » pour exclure plusieurs verbes d’un coup : ''si l’infinitif de l’action n’est ni détruire ni prendre, …''.
 +
 +<file donjon wiki_conditions_sujets_speciaux>
 +Le belvédère est un lieu.
 +La lunette est un objet ici.
 +
 +action méditer:
 +  si le jeu est commencé:
 +    dire "La partie est bel et bien commencée.".
 +  fin si
 +  si le jeu n’est pas terminé:
 +    dire "Et elle n’est pas encore terminée.".
 +  fin si
 +fin action
 +
 +règle après prendre la lunette:
 +  si l’infinitif de l’action est prendre:
 +    dire "La règle sait que vous venez de la prendre.".
 +  fin si
 +fin règle
 +
 +action abandonner:
 +  terminer le jeu.
 +  si le jeu est terminé:
 +    dire "La partie est finie.".
 +  fin si
 +fin action
 +
 +règle avant commencer le jeu:
 +  dire "Essayez : {/méditer/}, {/prendre la lunette/}, {/abandonner/}.".
 +fin règle
 +</file>
 +
 +[[djnc>wiki_conditions_sujets_speciaux|tester ces sujets spéciaux]]
  
 ===== Plus d’exemples ===== ===== Plus d’exemples =====
  
 <code donjon> <code donjon>
-si je joueur possède l’anneau magique, dire "Vous êtes protégé grâce à votre anneau.".+si le joueur possède l’anneau magique, dire "Vous êtes protégé grâce à votre anneau.".
  
 si le dragon n’est pas réveillé: si le dragon n’est pas réveillé:
Ligne 66: Ligne 200:
 </code> </code>
  
 +===== Voir aussi =====
 +
 +  * [[reference:instructions:controle:si:verbes:|Verbes utilisables dans une condition]] — être, vaut, possède, se trouve, contient, atteint, dépasse…
 +  * [[reference:instructions:controle:choisir|Choisir]] — proposer un choix au joueur.
 +  * [[reference:texte:conditions|Conditions et blocs textuels]] — la forme ''%%[si …]%%'' à l’intérieur d’un texte.
 +  * [[reference:memoire:compteurs|Compteurs]] — comparer une valeur numérique.
 +  * [[reference:definitions:fonds|Fonds]] — désigner une instance par sa position (locateur ''situé'').
 +
 +{{tag>si sinon sinonsi condition conditions test tester vérifier verifier controle contrôle comparateur comparateurs sujet_special soit ni_ni mais_pas parenthèses}}
reference/instructions/controle/si/start.1665518402.txt.gz · Dernière modification : (modification externe)