Règle générale mais avec exceptions

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

Modérateurs: Stormi, Otto Grimwald

Règle générale mais avec exceptions

Messagepar swiart2 le Dim Juin 09, 2019 10:42 am

Bonjour

Encore un soucis (petit) que je n'arrive pas résoudre sous I7

Je veux :
1/ Une régle générale qui s'applique quand le joueur tape AIDE
2/ Que la règle particulière s'applique quand le joueur est dans un lieu défini

J'ai écrit le code suivant, mais seule la règle générale s'applique. La règle selon le lieu ne s'applique pas

Code: Tout sélectionner
Understand the commands "aide" as something new. Understand "aide" as helping. Helping is an action applying to nothing.

[la règle par défaut]

Instead of helping:
   say "[one of]Creusez-vous encore un peu les méninges.[or]Comment pourrais-je savoir ?[or]Vous n'en n'avez pas particulièrement besoin ici.[at random]".   


[Les règles particulières qui doivent prendre la pas sur la régle générale selon le lieu où se trouve le joueur]
   
Instead of helping when location is in the Crique:
   say "[one of]Il faudrait rentrer dans l'eau.[or]On ne vous a pas appris à plonger ?[cycling]".

Instead of helping when location is in the Fonds_marins:
   say "[one of]Il faut réparer la coque si ce n'es pas déjà fait.[or]Bouchez la fissure.[cycling]".



Merci
Blog : http://www.inkypinky.blog/
Mes jeux en téléchargement, des articles sur le FI et l'écriture
swiart2
Celui qui attend à l'affût
 
Messages: 131
Inscription: Ven Juil 02, 2010 10:06 pm
Localisation: Rennes

Re: Règle générale mais avec exceptions

Messagepar StephaneF le Dim Juin 09, 2019 12:56 pm

C'est soit :

Code: Tout sélectionner
Instead of helping when location is the Crique:


soit :

Code: Tout sélectionner
Instead of helping when the player is in the Crique:
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 536
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Règle générale mais avec exceptions

Messagepar swiart2 le Dim Juin 09, 2019 5:55 pm

Un grand merci

Je ne connaissais pas la subtilité du "IN" ou non que l'on définisse Player ou Location !

Tout bête mais encore fallait-il le savoir.

Inform me réserve encore bien des surprises...
Blog : http://www.inkypinky.blog/
Mes jeux en téléchargement, des articles sur le FI et l'écriture
swiart2
Celui qui attend à l'affût
 
Messages: 131
Inscription: Ven Juil 02, 2010 10:06 pm
Localisation: Rennes

Re: Règle générale mais avec exceptions

Messagepar Natrium le Dim Juin 09, 2019 8:23 pm

La « location », c'est l'endroit (la room) où se trouve le joueur. En écrivant « when location is in the Crique », tu vérifie si l'emplacement du joueur se trouve dans la crique. Mais comme un endroit — la crique — ne peut pas contenir autre endroit — la location —, car seul des choses peuvent être dans un endroit, la condition est toujours fausse. Alors que si tu écris « when location is the Crique », tu vérifies que l'emplacement est tel ou tel endroit et tout va bien.

Il y a aussi un petit piège à savoir quand on écrit « when the player is in the Crique ». Si le joueur est sur une chaise qui se trouve dans la crique, alors la condition est fausse : le joueur n'est pas dans la crique au sens d'Inform, il est sur la chaise, et c'est elle qui est dans la crique. Si on veut tester si le joueur est directement ou indirectement dans un endroit, il faut utiliser la location.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1147
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Règle générale mais avec exceptions

Messagepar swiart2 le Dim Juin 09, 2019 8:43 pm

Très bien, merci pour l'information.

Mais une question me taraude.
Comment arrivez-vous à maîtriser ainsi Inform dont je découvre encore les subtilités après deux ans de pratique (sporadique, mais tout de même..) ?
Blog : http://www.inkypinky.blog/
Mes jeux en téléchargement, des articles sur le FI et l'écriture
swiart2
Celui qui attend à l'affût
 
Messages: 131
Inscription: Ven Juil 02, 2010 10:06 pm
Localisation: Rennes

Re: Règle générale mais avec exceptions

Messagepar Natrium le Dim Juin 09, 2019 9:27 pm

Voici en ce qui me concerne.

Je connais plusieurs langages de programmation et j'ai fait des études de sciences, donc je trouve que ça me facilite l'analyse et la compréhension du code. (Par exemple, je n'aurais pas eu le problème initial de ce sujet parce que je trouve que c'est logique et évident. Sans offense bien sûr, je parle pour moi et je conçois que c'est différent pour tout le monde. Ça m'arrive aussi d'avoir du mal parfois !)

J'ai commencé à utiliser Inform 7 depuis mes 14 ans environ, ce qui fait que j'ai une dizaine d'années d'expérience avec Inform. (Je ne m'étais pas rendu compte que ça faisait si longtemps déjà !) Au début je n'étais pas très très bon, et je ris un peu en voyant mes premiers projets…

J'ai lu la documentation au complet plusieurs fois. Ça ne marche pas pour tout le monde, certains n'aiment pas la façon dont la documentation officielle explique les choses, mais moi je l'adore.

Je m'occupe de la traduction en français d'Inform. Ça implique de connaître les rouages internes d'Inform, de fouiller dans les Standard Rules et dans les templates Inform 6 pour savoir comment les trucs fonctionnent.

Enfin, je suis simplement curieux et j'aime savoir comment les choses fonctionnent, alors je vais souvent voir la source d'extensions que d'autres personnes ont écrites juste comme ça.

De manière générale, tu n'as pas à t'inquiéter. Avec les concepts de bases, il est possible de faire des jeux complets et très bons ! C'est en se posant des questions ou en bloquant sur certaines choses qu'on finit par apprendre les concepts d'Inform moins utilisés.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1147
Inscription: Mar Oct 04, 2011 11:18 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