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;