Inform : directions : this looks like a contradiction

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

Modérateurs: Stormi, Otto Grimwald

Inform : directions : this looks like a contradiction

Messagepar GorgeRonde le Lun Fév 22, 2010 2:09 pm

bonjour,

Je viens tout juste de télécharger inform 7 pour mac, et quelque chose ne va pas concernant le placement des portes (ou alors c'est moi).

j'ai essayé d'exécuter le code suivant, extrait de la documentation :
Code: Tout sélectionner
The Undertomb is east of the Orchard. The heavy iron grating is east of the Orchard and west of the Undertomb. The grating is a door.

avec comme réponse de la part du compilateur
Problem. You wrote 'The heavy iron grating is east of the Orchard and west of the Undertomb' , but in another sentence 'The Undertomb is east of the Orchard' : but this looks like a contradiction, which might be because I have misunderstood what was meant to be the subject of one or both of those sentences.


par contre, si je transforme le code en...
The Undertomb is west of the Orchard. The heavy iron grating is east of the Orchard and west of the Undertomb. The grating is a door.


...le jeu se lance

:?:

edit: comme je sens que c'est la gamelle ce genre de question, je vais préciser comment j'interpete le premier bout de code.
Je crois que "is east of" se traduit par "est à l'est de"

The Undertomb is east of the Orchard.
(Orchad)........(Undertomb)
The heavy iron grating is east of the Orchard
(Orchad) |......(Undertomb)
and west of the Undertomb
(Orchad) |.....|(Undertomb)
The grating is a door
(Orchad) |<-->|(Undertomb)
GorgeRonde
Sorcier du culte
 
Messages: 4
Inscription: Lun Fév 22, 2010 10:46 am

Re: Inform : directions : this looks like a contradiction

Messagepar Otto Grimwald le Lun Fév 22, 2010 9:54 pm

Salut et bienvenue GorgeRonde !

Concernant ta question, issue du chapitre 3.12 du manuel d'Inform 7, la documention précise justement que cette phrase est une contradiction et ne compile pas : "then Inform would say that this is a contradiction: we said the Undertomb was east of the Orchard, but then we said that the grating was east of the Orchard. "

Je pense que ton dessin est correct, la porte s'intercale bien entre les 2 espaces, et dans inform, "is east of" signifie bien "est immédiatement à l'est de" (ce n'est pas un placement général, c'est ce qui est tout de suite à côté)

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

Re: Inform : directions : this looks like a contradiction

Messagepar auraes le Ven Sep 13, 2013 5:16 pm

J'utilise ce topic et ce n'est surement pas adapté. Je cherchais un moyen simple de se déplacer d'un lieu adjacent à un autre sans forcement passer par les directions : Aller parc, aller jardin...
Code: Tout sélectionner
Include "Parser";
Include "VerbLib";

[ IdObj w   obj nb i;
   objectloop( obj provides name ){
         nb = obj.#name / WORDSIZE;
         for( i = 0 : i < nb : i++ )
            if( obj.&name-->i == w ) return obj;
   }
   rfalse;
];

[ ParserError error_type;
   switch (error_type) {
      !SCENERY_PE: if(verb_word == 'aller') "Mais vous y êtes déjà !";
      SCENERY_PE: if(action_to_be == ##Enter) "Mais vous y êtes déjà !";
   }
   rfalse;
];

Class Room has light;
Class Item;

Room potager "Dans le potager"
with
   name 'potager',
   description "Vous êtes dans le potager qui est proche du jardin.",
   s_to jardin,
;
Room jardin "jardin"
with
   name 'jardin',
   description "Vous êtes dans le jardin qui est devant la maison. Il y a un puits et un potager.",
   n_to potager,
   e_to parc,
   d_to puits
;
Room parc "parc"
with
   name 'parc',
   description "Vous êtes dans le parc à proximité du jardin.",
   w_to jardin,
;
Room puits "Au fond du puits"
with
   name 'puits',
   description "Du fond du puits, vous apercevez le jardin.",
   u_to jardin
;

Item boussole compass
with
   parse_name [ w i d;
      !if (verb_word == 'aller'){
      if (action_to_be == ##Enter){
         w = NextWord();
         d = IdObj(w);
         for (i = n_to : i <= out_to : i++){
            if( location provides i && location.i == d ){
                self.door_dir = i;
               return 3;
            }
         }
      }
      self.door_dir = 0; !?
      return 0;
   ],
   door_dir 0
;

[ Initialise;
   lookmode = 2;
   location = jardin;
];

Include "Grammar";


C'est tout chaud... il y a surement des bogues, mais bon... ça à l'air de fonctionner.
Dernière édition par auraes le Sam Sep 14, 2013 8:40 pm, édité 1 fois.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Inform : directions : this looks like a contradiction

Messagepar Mule hollandaise le Sam Sep 14, 2013 5:57 pm

Ca a l'air intéressant. Tu as regardé le code des extensions qui le font déjà ? (Par exemple "GoTo" par Toni Arnold, ou "GoNeighbour" par Alan Trewartha ? cf ici)

Tu devrais essayer de faire une extension avec ton code dedans, qu'on puisse juste faire Include "GoToAuraes" dans nos jeux ! Et je veux bien essayer de tester cette extension quand j'aurais le temps :wink:
Mule hollandaise
Grand Ancien
 
Messages: 1124
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Inform : directions : this looks like a contradiction

Messagepar auraes le Sam Sep 14, 2013 8:37 pm

Non, je n'ai pas regardé. C'est compliqué de se plonger dans le code des autres.
C'était juste pour essayer, ça n'a pas vocation à être une extension. Je l'ai juste testé avec 'aller' et avec mes librairies et les librairies anglaises. D’ailleurs, si cela fonctionne, il serait bien d'en restreindre l'usage à un seul verbe, au risque de conflits avec les autres verbes et possibilités de déplacement.
Si le joueur sait qu'il peut utiliser '> Aller Lieu' (seulement 'aller', même pas ses synonymes) pour un lieu adjacent et nommé dans la description, cela doit être gérable.
Pour ça, il faut remplacer les deux | action_to_be == ##Enter | par | verb_word == 'aller' |.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 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