[I7] Succession de conditions impriquées

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

[I7] Succession de conditions impriquées

Messagepar ciseur68 le Dim Nov 03, 2013 4:32 pm

Bonjour,
Je me confronte à un problème dans ma fiction, prenons un exemple.
Mon personnage peut-être rasé, lavé et coiffé.
Lorsqu'il se regarde dans un miroir, j'aimerai que la description se fasse en conséquence, du genre :
Code: Tout sélectionner
When blablabla, say "[if rasé OU coiffé OU habillé]Je suis [if rasé]habillé[if lavé], [end if][end if][if lavé]lavé[end if][if rasé][if habillé OU lavé] et [end if]rasé[end if].

J'aimerai donc savoir comment utiliser les fonctions logiques ET et OU, et savoir comment imbriquer plusieurs conditions les unes dans les autres (Le coup du [if X][if Y][end if][end if] n'a pas l'air d'etre supporté...)

Merci d'avance.
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: [I7] Succession de conditions impriquées

Messagepar Otto Grimwald le Dim Nov 03, 2013 8:17 pm

salut,

il n'est pas possible à ma connaissance de faire comme ça. Cela m'aurait bien arrangé également, mais effectivement les développeurs d'Inform7 n'ont pas prévu cela. Peut-être cela tient-il à une difficulté technique, ou peut-être qu'ils ont voulu éviter que les auteurs ne fassent du code spaghetti.

Pour pouvoir faire des choses plus compliquées, il faudra donc passer par une petite astuce pour imbriquer les tests :

Ici je voulais pouvoir indiquer qu'il y avait un chien ou une chienne, avec les accords qui vont bien :

Code: Tout sélectionner
To say chien domestique:
   say "domestiqué[If chien is female]e[otherwise][end if]"
   
To say un loup:
   say "[If chien is female]une louve[otherwise]un loup[end if]"

The chien is an animal in desert. The description of chien is "[if chien is hostile]Cet animal pourtant placide dévoile des trésors d'agressivité quand il s'agit de se défendre face à de la violence injustifiée. [otherwise]Cet animal semble accueillant et il jappe joyeusement à votre approche. Même s'il ressemble un peu à [un loup], c'est [a chien] visiblement [chien domestique]. [end if]Où sont ses maîtres ?".


(c'est tiré du code d'un jeu en développement disponible ici : https://bitbucket.org/farvardin/la_vall ... rieuse/src)

Cela dit, je ne sais pas si c'est aisé ni même possible d'appliquer cela dans ton exemple. Tu devrais pouvoir t'en sortir avec une construction plus traditionnelle, du genre :

if the player is habillé and the player is rasé and the player is lavé
say blabla
if the player is habillé and the player is rasé and the player is not lavé
say blabla
etc

mais il faudra indiquer tous les cas possibles. Avec plus de caractéristiques, ça serait impossible, il faudrait sans doute afficher le résultat sous forme d'une liste. Voir chapitre 20 du guide d'inform7, mais je dois avouer n'avoir jamais utilisé cela. Ça semble apparemment assez puissant.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: [I7] Succession de conditions impriquées

Messagepar ciseur68 le Dim Jan 26, 2014 12:34 am

Merci beaucoup pour ton aide, j'ai finalement détaillé pour chaque cas de manière simplifiée du coup. Néanmoins, je suis surpris que ça n'existe pas, je suppose ne pas être le premier à me frotter à ce problème, c'est assez courant quand même les opérateurs logiques... Enfin bon, croisons les doigts pour ne pas arriver sur un point du même genre en plus compliqué :mrgreen:
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: [I7] Succession de conditions impriquées

Messagepar Otto Grimwald le Dim Jan 26, 2014 3:07 pm

il y a aussi la possibilité d'en parler sur leur bug tracker : http://inform7.com/contribute/report/

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron