Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:instructions:controle:si:start

Si (condition)

Il s’agit d’une instruction de contrôle qui dépend d’une condition. Les instructions exécutées seront différentes selon que la condition est remplie ou non.

Verbes utilisables dans les conditions

Comment écrire une condition

Dans une routine

Bloc si

si le sac se trouve ici:
  dire "En cherchant un peu, vous devriez trouver de quoi transporter ces pommes."
sinon
  dire "À priori cela va être difficile de transporter ces nombreux fruits."
fin si

Si rapide

Cette forme est plus simple à écrire : la condition est suivie d’une virgule , et d’une instruction unique.

règle après aller vers la chambre:
  si le joueur est fatigué, dire "Vous iriez bien dormir.".
fin règle

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.

si le niveau vaut 1:
  dire "Débutant.".
sinonsi le niveau vaut 2:
  dire "Confirmé.".
sinon
  dire "Expert.".
fin si

tester si / sinonsi / sinon

Dans un texte

dire "Vous êtes fatigué et [si le joueur est énervé]énervé[sinon]paisible[fin si]."

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 :

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.".

C’est particulièrement utile avec un fond « propre à chaque lieu », dont chaque lieu possède sa propre instance — voir un exemple jouable sur la 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 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)
si le score atteint 100, dire "Vous gagnez !".
si les points de vie n’atteignent pas 1, dire "Vous avez perdu.".

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) :

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.".

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).

Grouper avec des parenthèses

Les parenthèses regroupent des sous-conditions pour maîtriser l’ordre d’évaluation :

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

soit … soit … (exactement un)

soit A soit B est vrai lorsque exactement une des deux conditions est vraie (ni les deux, ni aucune) :

si le moule est soit beurré soit fariné, dire "Vous avez préparé le moule (mais pas les deux).".

Exclure : ni … ni … / mais pas

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é.".

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 terminer le jeu)
la réponse si la réponse est "limonade" le joueur a donné cette réponse au dernier choix
si la réponse commence par "café" la réponse commence/termine par ce texte — voir commencer par / terminer par
l’infinitif de l’action si l’infinitif de l’action est prendre dans une 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, ….

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

tester ces sujets spéciaux

Plus d’exemples

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é:
  dire "Les paupières du dragon sont toujours closes. Espérons que ça dure…".
sinon
  dire "Il vous semble avoir vu remuer le dragon.".
fin si
 
si l’historique contient "sortie grotte bloquée", dire "Pas moyen de sortir de la grotte pour le moment.".
 
-- Le joueur doit posséder tous les objets listés
si le joueur possède la couronne et le sceptre, dire "Les gardes vous laissent entrer dans votre palais.".
 
-- Le joueur ne possède aucun des objets listés
si le joueur ne possède ni l’anneau magique ni le bouclier :
  dire "Vous êtes touché par les flammes du dragon".
  changer l’historique contient "dragon rencontré".
  changer le joueur est brulé.
fin si
 
-- Si uniquement une des conditions est remplie
si le moule est soit beurré soit fariné, dire "Vous avez oublié quelque chose.".
 
si l’assiette contient les légumes mais pas la viande, dire "C’est surtout un carnivore, vous savez.".

Voir aussi

reference/instructions/controle/si/start.txt · Dernière modification : de 127.0.0.1