French Inform Library Objects: Difference between revisions

From IFWiki

No edit summary
 
No edit summary
Line 44: Line 44:
         ],  
         ],  
has  female;
has  female;
</pre>
==Un Téléphone qui fonctionne==
d'abord, la fonction qui permet de déterminer le numéro de téléphone (à ne pas changer, à mettre où vous voulez dans votre code)
<pre>
Array dialled_number -> MAX_PHONE_LENGTH + 1;
[ PhoneNumber at length dialled dialled_already i;
do {
  if (wn > num_words) jump number_ended;
  at = WordAddress(wn); length = WordLength(wn);
  for (i=0: i<length: i++) {
      switch (at->i) {
          '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
              if (dialled < MAX_PHONE_LENGTH)
                  dialled_number -> (++dialled) = at->i - '0';
          '-': ;
          default: jump number_ended;
      }
  }
  wn++;
  dialled_already = dialled;
} until (false);
.number_ended;
if (dialled_already == 0) return GPR_FAIL;
dialled_number->0 = dialled_already;
return GPR_PREPOSITION;
];
</pre>
Ensuite l'objet téléphone en lui même :
<pre>
Object telephone "telephone" bureau
        with name 'telephone' 'combine',
            description "Partez loin, au bout du monde, ils seront déjà
là, à vous attendre, pour vous harceler. Ils vous ont déjà conquis.
Ils s'appellent...les téléphones. ",
            before [;Take : if (noun==telephone) {print "Si je veux
utiliser le
téléphone, je n'ai qu'à taper ~composer~ suivi du numéro. ";return
2;}],
            phoned 0,
      has static;
</pre>
Ensuite la fonction "Composer" qui vous permet d'appeler un numéro (dans notre exemple, on prend le 36 99 pour l'horloge parlante)
<pre>
[ComposerSub;
if (telephone in location) {
if (
dialled_number->1==3
&&
dialled_number->2==6
&&
dialled_number->3==9
&&
dialled_number->4==9
) {print "L'horloge parlante vous dit l'heure";}
else {print "Bah, je n'ai pas envie d'appeler ce numéro";}
}
else {print "^Ouaip, je donnerais bien un petit coup de fil, mais il n'y a
pas de téléphone ici.^";
}
];
</pre>
Et enfin, le verbe composer à ajouter à votre grammaire :
<pre>
Verb 'composer' 'appeler'
*  PhoneNumber                  ->Composer
* 'le' PhoneNumber              ->Composer;
</pre>
</pre>



Revision as of 10:32, 30 October 2005

Bibliothèque d'objets pour Inform

Couteau

Object   Couteau "couteau" Cuisine
   with  description "Un banal couteau de cuisine.",
	 name 'couteau' 'de' 'cuisine',
	before [;
            Actionner:  if (noun == Bouchon) {print "Vous retaillez le bouchon.^"; rtrue;} else rfalse;
        ],
	after [;
            Drop: print "De toute façon il ne vaut pas grand chose.";
        ],
	has ;

Enveloppe

Object Enveloppe "enveloppe" 
   with  description "Au dos se trouve l'adresse de votre correspondant.",
	article "une", 
	name 'enveloppe',
	before [;
            Lire: print_ret (bp_U) "^Votre nom figure sur le devant.";
 Receive:
 if (noun == Lettre)
{print ""; return false ;}
else
"Cela ne va pas, cela ne se fait pas de mettre ", (the) noun, " dans l'enveloppe."; 
        ], 
	has container openable female open;

Lettre

Papier Lettre "lettre" Tiroir
   with  description "Une lettre de votre ami Otto.",
	name 'lettre',
	before [;
            Lire: "";
 
        ], 
	has  female;

Un Téléphone qui fonctionne

d'abord, la fonction qui permet de déterminer le numéro de téléphone (à ne pas changer, à mettre où vous voulez dans votre code)

Array dialled_number -> MAX_PHONE_LENGTH + 1;
[ PhoneNumber at length dialled dialled_already i;
 do {
   if (wn > num_words) jump number_ended;
   at = WordAddress(wn); length = WordLength(wn);
   for (i=0: i<length: i++) {
       switch (at->i) {
           '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
               if (dialled < MAX_PHONE_LENGTH)
                   dialled_number -> (++dialled) = at->i - '0';
           '-': ;
           default: jump number_ended;
       }
   }
   wn++;
   dialled_already = dialled;
 } until (false);
 .number_ended;
 if (dialled_already == 0) return GPR_FAIL;
 dialled_number->0 = dialled_already;
 return GPR_PREPOSITION;
];

Ensuite l'objet téléphone en lui même :

 Object telephone "telephone" bureau
        with name 'telephone' 'combine',
             description "Partez loin, au bout du monde, ils seront déjà
là, à vous attendre, pour vous harceler. Ils vous ont déjà conquis.
Ils s'appellent...les téléphones. ",
             before [;Take : if (noun==telephone) {print "Si je veux
utiliser le
téléphone, je n'ai qu'à taper ~composer~ suivi du numéro. ";return
2;}],
             phoned 0,
      has static;

Ensuite la fonction "Composer" qui vous permet d'appeler un numéro (dans notre exemple, on prend le 36 99 pour l'horloge parlante)

[ComposerSub;
if (telephone in location) {
if (
dialled_number->1==3
&&
dialled_number->2==6
&&
dialled_number->3==9
&&
dialled_number->4==9
) {print "L'horloge parlante vous dit l'heure";}
else {print "Bah, je n'ai pas envie d'appeler ce numéro";}
}
else {print "^Ouaip, je donnerais bien un petit coup de fil, mais il n'y a
pas de téléphone ici.^";
}
];

Et enfin, le verbe composer à ajouter à votre grammaire :

Verb 'composer' 'appeler'
*  PhoneNumber                  ->Composer
* 'le' PhoneNumber              ->Composer;