Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:memoire:listes

Listes

Définir une nouvelle liste

-- une liste de nombres
Les nombres gagnants sont une liste.
Elle contient 7, 21 et 9.
 
-- une liste d’éléments du jeu (ils doivent dériver du type "Intitulé")
Les lieux visités sont une liste.
Elle contient la cuisine, le salon et la chambre.
 
-- une liste de textes
Les suspects sont une liste.
Elle contient "Alice", "Bob", "Carole" et "David".
wiki_memoire_liste_suspects
Le commissariat est un lieu.
 
Les suspects sont une liste.
Elle contient "Alice", "Bob" et "Carole".
 
action accuser:
  dire "Suspects actuels : [décrire la liste des suspects].".
fin action
 
action innocenter:
  Retirer "Alice" de la liste des suspects.
  dire "Alice est blanchie. Suspects restants : [décrire la liste des suspects].".
fin action
 
règle avant commencer le jeu:
  dire "Essayez : {/accuser/} puis {/innocenter/}.".
fin règle

tester cet exemple

Modifier une liste durant le jeu

Ajouter des éléments

-- une liste de nombres
Ajouter 7, 21 et 9 aux nombres gagnants.
 
-- une liste d’éléments du jeu (ils doivent dériver du type "Intitulé")
Ajouter la cuisine, le salon et la chambre aux lieux visités.
 
-- une liste de textes
Ajouter "Alice", "Bob", "Carole" et "David" aux suspects.
changer la liste des suspects contient ceci.

Retirer des éléments

Deux formes équivalentes :

-- Forme « changer … ne contient plus »
changer la liste des suspects ne contient plus ceci.
 
-- Forme « retirer X de la liste »
Retirer Alice de la liste des suspects.
Retirer Alice et Bob de la liste des suspects.

enlever est accepté comme synonyme de retirer.

Vider la liste

Pour vider complètement la liste, il faut utiliser l'instruction vider.

Vider la liste des suspects.
Vider la liste suspects.        -- forme alternative équivalente
Vider les suspects.             -- forme courte

Tester une liste

Contenance

si la liste des suspects contient Alice:
  dire "Alice est suspecte.".
fin si
 
si la liste des suspects ne contient pas Alice:
  dire "Alice est innocente.".
fin si
 
si la liste des suspects est vide:
  dire "Plus aucun suspect.".
fin si

Taille

La taille d’une liste (son nombre d’éléments) s’interroge via la taille de X. La forme exacte dépend du genre/nombre de l’intitulé de la liste :

Intitulé de la liste Forme dans la condition / dans une chaîne
le compteur la taille du compteur
la file la taille de la file
l’archive la taille de l’archive
les éléments la taille des éléments
le groupe actif la taille du groupe actif
les notes importantes la taille des notes importantes
-- Égalité
si la taille des suspects vaut 0, dire "Aucun suspect.".
si la taille des suspects ne vaut pas 0, dire "Il y a des suspects.".
 
-- Comparaisons
si la taille des suspects atteint 3:        -- >= 3
  dire "Trois suspects ou plus.".
fin si
si la taille des suspects dépasse 5:        -- > 5
  dire "Trop de suspects !".
fin si
si la taille des suspects n’atteint pas 2:  -- < 2
  dire "Pas encore assez de suspects.".
fin si
si la taille des suspects ne dépasse pas 4: -- <= 4
  dire "Nombre raisonnable.".
fin si
 
-- Dans un texte dynamique
dire "Il y a [c taille des suspects] suspect[s taille des suspects].".

Afficher les éléments de la liste

Énumérer les éléments d'une liste

Les éléments sont présentés sous la forme d'une liste à puces.

 dire "[lister la liste des suspects]".

Décrire les éléments d'une liste

Les éléments sont présentés sur une seule ligne pour être intégrés dans une phrase.

 dire "[décrire la liste des suspects]".

Exemple complet : la liste des suspects

-- description de la salle
La salle d’interrogatoire est un lieu.
Alice (f) est une personne ici.
Bob est une personne ici.
David est une personne ici.
Carole (f) est une personne ici.
 
-- la liste des suspects (initialement Alice et Bob sont suspectés)
Les liste des suspects est une liste.
Elle contient Alice et Bob.
 
action innocenter une personne:
  si la liste des suspects contient ceci:
    changer la liste des suspects ne contient plus ceci.
    dire "Je [l’ ceci]ai retiré[es ceci] de la liste des suspects.".
  sinon
    dire "[Pronom ceci] [v être ipr pas ceci] pas parmi les suspects.".
  fin si
fin action
 
action suspecter une personne:
  si la liste des suspects ne contient pas ceci:
    changer la liste des suspects contient ceci.
    dire "Je [l’ ceci]ai ajouté[es ceci] à la liste des suspects.".
  sinon
    dire "[Pronom ceci] [v se trouver ipr ceci] déjà parmi les suspects.".
  fin si
fin action
 
action afficher les suspects:
  si la liste des suspects est vide:
    dire "Il n’y a actuellement aucun suspect.".
  sinon
    dire "Voici les suspects :
        [lister la liste des suspects]".
  fin si
fin action

Exemple jouable : la liste de courses

Une liste de textes initialement remplie. Le joueur peut acheter un article (s’il est sur la liste), ajouter un article hors liste, et la taille s’affiche au fur et à mesure.

ex_listes_courses
-- "Informations sur le jeu".
Le titre du jeu est "La liste de courses".
L’auteur du jeu est "DonjonFI".
 
L’épicerie du quartier est un lieu.
 
Les courses à faire sont une liste.
Elle contient "pain", "lait" et "pommes".
 
Le rayon est un support fixé dans l’épicerie du quartier.
Le pain est un objet sur le rayon.
Le lait est un objet sur le rayon.
Les pommes sont des objets sur le rayon.
Le chocolat est un objet sur le rayon.
 
action consulter la liste:
  phase épilogue:
    si les courses à faire sont vides:
      dire "Votre liste est vide. Vous avez tout acheté !".
    sinon
      dire "Reste à acheter ([c taille des courses à faire] article[s taille des courses à faire]) :{n}[lister courses à faire]".
    fin si
fin action
 
action acheter ceci:
  définition:
    ceci est un objet visible et accessible.
  phase épilogue:
    si les courses à faire contiennent ceci:
      changer les courses à faire ne contiennent plus ceci.
      changer le joueur possède ceci.
      dire "Vous achetez [intitulé ceci]. [si les courses à faire sont vides]Votre liste est complète ![sinon]Il vous reste [c taille des courses à faire] article[s taille des courses à faire] à acheter.[fin si]".
    sinon
      dire "[Intitulé ceci] ne figure pas sur votre liste.".
    fin si
fin action
 
Le joueur est dans l’épicerie du quartier.

tester cet exemple

À tester : consulter la listeacheter le pain (OK) → acheter le chocolat (refusé) → consulter la liste (taille mise à jour).

Voir aussi

reference/memoire/listes.txt · Dernière modification : de 127.0.0.1