(I7) : mettre dans

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

Modérateurs: Stormi, Otto Grimwald

(I7) : mettre dans

Messagepar tvisarl le Sam Juin 23, 2018 2:19 pm

Bonjour,

Modifier les actions de base contenues dans I7 m'a toujours fait peur. Alors, voilà :

Sauf erreur il existe une action ( approximativement ) : Mettre [qq chose] sur [supporter]

Comment faire pour obtenir : Mettre [qq chose] dans [container] ?
Tout en gardant la règle standard, bien sûr.

Merci d'avance.
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: (I7) : mettre dans

Messagepar StephaneF le Sam Juin 23, 2018 4:50 pm

L'action pour ça est " Inserting it into "
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 536
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: (I7) : mettre dans

Messagepar tvisarl le Sam Juin 23, 2018 5:44 pm

Merci, Stéphane :D . Mais ça, je savais déjà.
En y réfléchissant, je me dis que je pourrais déclarer des verbes comme "ajouter", "fourrer", "glisser" et "introduire" comme synonymes de "insérer". Et là, je ne sais pas faire...
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: (I7) : mettre dans

Messagepar StephaneF le Sam Juin 23, 2018 6:32 pm

Code: Tout sélectionner
Understand "mettre [something] dans [a container]" as inserting it into.


(ou alors je n'ai pas compris ce qui te pose problème)
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 536
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: (I7) : mettre dans

Messagepar tvisarl le Dim Juin 24, 2018 9:34 am

Merci encore. Je ne savais pas qu'on pouvait utiliser "Understand" pour remplacer tout un groupe de mots, c'était ça mon problème.

Mais ce n'est pas fini ! Supposons que je sois en train de préparer un pot-au-feu ( je sais, ce n'est pas la saison ) :

- J'ai le droit de dire "Mettre carotte dans casserole", et ça marche très bien.

Mais comment puis-je, à l'intérieur du même tour, intercepter cette action pour exécuter immédiatement une autre qui en est la conséquence directe, par exemple : say "Ça sent bon, maintenant !";
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: (I7) : mettre dans

Messagepar StephaneF le Dim Juin 24, 2018 10:42 am

Code: Tout sélectionner
After inserting the cartotte into the marmite, say "Miam miam.".


ou même si tu veux qque chose de plus complexe :

Code: Tout sélectionner
After inserting the cartotte into the marmite:
say "Miam miam.";
now the BonneOdeur is in Cuisine.
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 536
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: (I7) : mettre dans

Messagepar tvisarl le Dim Juin 24, 2018 11:23 am

Ah, la vache ! Ça aussi, je ne savais pas que c'était possible ; par exemple, Aaron Reed n'en parle pas dans "Creating Interactive Fiction with Inform 7" qui est ma bible.

Honneur et gloire à toi, ô Grand Ancien !
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: (I7) : mettre dans

Messagepar StephaneF le Dim Juin 24, 2018 12:36 pm

Je te conseille si tu ne l'as pas déjà fait, de lire des codes-sources de jeux déjà sortis ... Le manuel fourni avec Inform 7 (dans le logiciel même) comporte beaucoup d'exemples bien foutus aussi.

Un exemple que je viens de trouver :

Code: Tout sélectionner
After inserting something into the well:
    consider the flotation rules for the noun;
    if the rule succeeded:
        say "[The noun] bobs on the surface.";
    otherwise:
        move the noun to the well bottom;
        say "[The noun] sinks out of sight."


Pour info tu peux aussi écrire :

Before (action quelconque) :
say "Blabla.".

ça peut permettre d'interdire une action si les conditions ne sont pas réunies, par exemple :

Code: Tout sélectionner
Before drinking a beer when the time of day is before 11 am :
say "On ne picole pas le matin." ; stop the action.


Mais tu le savais peut-être déjà.
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 536
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: (I7) : mettre dans

Messagepar tvisarl le Dim Juin 24, 2018 12:50 pm

C'est ce que je fais juste en ce moment avec "Ma princesse adorée" de Hugo Labrande.
Excellent jeu, très instructif et très marrant.

Pour en profiter pleinement je suis en train de le ré-écrire en Inform 7 à ma sauce à moi, d'où ma question de départ.
tvisarl
Grand Ancien
 
Messages: 162
Inscription: Sam Juin 18, 2016 9:20 am

Re: (I7) : mettre dans

Messagepar Natrium le Dim Juin 24, 2018 8:42 pm

tvisarl a écrit:En y réfléchissant, je me dis que je pourrais déclarer des verbes comme "ajouter", "fourrer", "glisser" et "introduire" comme synonymes de "insérer". Et là, je ne sais pas faire...

La solution que StephaneF t'a proposée permet d'ajouter une nouvelle ligne de compréhension pour une action. C'est très bien, mais si tu veux que ta liste de mots soit considérée comme synonyme de "insérer", on peut aussi utiliser la formulation suivante :

Code: Tout sélectionner
Understand the commands "ajouter", "fourrer" and "introduire" as "inserer".
[Sans l'accent car c'est défini comme ça dans l'extension, et qu'il faut éviter pour la compréhension.]

La nuance, c'est que ça ajoute ces commandes en synonyme d'une autre commande plutôt que faisant référence directement à une action. Donc si "insérer" mène à une autre action que tu auras créée (différente de "inserting it into") alors ces synonymes seront aussi pris en compte.

Tout dépend donc de si tu veux ajouter des commandes à une action ou créer des synonymes (du point de vue linguistique) à des commandes qui existent déjà.
J'espère que tu as compris la nuance !
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 4 invités

cron