Augmenter le nombre de synonymes possibles ?

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

Modérateurs: Stormi, Otto Grimwald

Augmenter le nombre de synonymes possibles ?

Messagepar StephaneF le Ven Jan 06, 2012 9:40 am

bonjour bonjour

j'ai un petit problème, j'ai besoin (sauf à changer complètement de méthode) de pouvoir définir un GRAND nombre de synonymes pour un verbe (attendre, en l'occurrence, mais ça pourrait être n'importe quel autre) ... Et à la compilation, ça ne passe pas.

Y-a-t-il un moyen d'augmenter le nombre de synonymes possibles ? avec un truc à la MAX_USE , peut être ?
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Augmenter le nombre de synonymes possibles ?

Messagepar Natrium le Ven Jan 06, 2012 7:24 pm

Tu veux définir combien de synonymes ? Et qu'est-ce qui ne passe pas à la compilation ? Apparemment, il n'y aurait pas assez de mémoire. Si tu es en glulx et qu'il s'agit bien de la mémoire, il faut en donner plus, en fonction de ce qui a été dépassé (normalement, il te l'indique).
Je cite la doc en exemple « Use MAX_ZCODE_SIZE of 60000. ».

Si ça marche pas, je vois pas trop…
(peut-être effectivement changer de méthode, mais alors il faut que tu donnes plus de détails.)
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1165
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Augmenter le nombre de synonymes possibles ?

Messagepar Otto Grimwald le Sam Jan 07, 2012 1:32 am

souvent je rajoute ça à mes codes :

Code: Tout sélectionner
Use MAX_VERBSPACE of 8000.
Use MAX_ZCODE_SIZE of 60000.

Use MAX_ARRAYS of 1500.
Use MAX_CLASSES of 200.
Use MAX_VERBS of 254.
Use MAX_STATIC_DATA of 135000.
Use MAX_INDIV_PROP_TABLE_SIZE of 20000.
Use MAX_DICT_ENTRIES of 1600.


je ne sais pas si on peut aller à plus de 254 pour "Use MAX_VERBS of 254."

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

Re: Augmenter le nombre de synonymes possibles ?

Messagepar StephaneF le Sam Jan 07, 2012 9:51 am

je suis à 9999 .... :oops:
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Augmenter le nombre de synonymes possibles ?

Messagepar StephaneF le Sam Jan 07, 2012 9:53 am

Mon problème c'est que pour permettre au joueur d'attendre, j'ai des trucs du genre :

Code: Tout sélectionner
Waiting for two minutes is an action applying to nothing.
Understand "attendre deux minutes" or "attendre 2 minutes" as waiting for two minutes.
   
      Carry out waiting for two minutes:
      now player is attente;
      let the target time be the time of day plus two minutes;
      decrease the target time by one minutes;
      while the time of day is not the target time
      begin;
      follow the turn sequence rules;
      end while;
      now player is notattente.


Vu le nombre de minutes dans une heure, et d'heures dans une journée (même si j'ai limité l'attente max à 3h d'un coup), vous imaginez le nombre de "understand truc" as waiting ...
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Augmenter le nombre de synonymes possibles ?

Messagepar StephaneF le Sam Jan 07, 2012 11:05 am

Bon j'ai court-circuité mon problème en faisant autrement :

Code: Tout sélectionner
Waiting more is an action applying to one topic.

Understand "attendre [text]" as waiting more.

Carry out waiting more:
say "Vous ne pouvez pas attendre si longtemps, d'une seule traite.";
stop the action.


( si je mettais " applying to one number " , dire ensuite "understand "attendre quatre heures" as waiting more" , ne marche pas : une fois dans le jeu, ça répond " vous ne devez pas indiquer d'objet )

Pour le reste, j'ai utilisé des " / " as la place des or (genre " understand truc/bidule/machin") mais tout ça ne me dit pas comment augmenter malgré tout le nombre " or " à la suite d'un " understand "... mais ça n'est peut être pas faisable après tout
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Augmenter le nombre de synonymes possibles ?

Messagepar Natrium le Dim Jan 08, 2012 6:07 pm

Je pense que la meilleure solution c'est de refaire le système, c'est pas super pratique.

Code: Tout sélectionner
waiting more is an action applying to a number.
Understand "attendre [number] minutes" as waiting more.

Carry out waiting more:
increase the time of day by the time understood.


Pour moi ça marche. En fait, tu peux pas écrire "quatre" pour 4, il faut écrire "four" (en anglais quoi) ou 4. C'est pour ça que ça ne marchait pas avec number.

Après il ne reste qu'à ajouter des conditiond etc.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1165
Inscription: Mar Oct 04, 2011 11:18 pm

Re: Augmenter le nombre de synonymes possibles ?

Messagepar StephaneF le Sam Jan 14, 2012 10:52 am

Oui, ça ça peut marcher. Merci d'avoir pris le temps de taper ça.

Après, j'ai un problème incompréhensible, parce que je veux quand on attend, chaque tour soit réellement joué (turn sequence rule), et non pas " sauté " jusqu'à l'heure voulue. c'est nécessaire pour que mon petit monde " vive " réellement pendant que le personnage attend, et que le temps passe réellement pour passer d'un jour à l'autre. Enfin je ne m'exprime pas clairement, là, mais je posterai un exposé précis un autre jour.
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Augmenter le nombre de synonymes possibles ?

Messagepar Otto Grimwald le Sam Jan 14, 2012 7:41 pm

Je pense que cela pourrait répondre à ta question :
http://inform7.com/learn/man/Rex411.html#e411

J'ai fait un test à partir de cela et ça semble fonctionner :

Code: Tout sélectionner
"test" by eric

kitchen is a room.
The clock is in the kitchen.

Instead of examining clock, say "It is [time of day].".

The apple is an edible thing in kitchen.


RottingApple is a recurring scene. RottingApple begins when the apple is carried.
RottingApple ends when the time since RottingApple began is 15 minutes.

When RottingApple begins:
   say "The apple begins to rot.".
   
When RottingApple ends:
   say "The apple is rotten.";
   remove apple from play.

Waiting more is an action applying to one number.

Understand "wait [a time period]" or "wait for [a time period]" or "wait for a/an [a time period]" or "wait a/an [a time period]" as waiting more.

Carry out waiting more:
   let the target time be the time of day plus the time understood;
   decrease the target time by one minute;
   while the time of day is not the target time:
      follow the turn sequence rules.

[The one nuance here is that after our wait command occurs, the turn sequence rules will occur one more time. So we need to subtract one minute from the parsed time to make the turn end on the desired number of minutes.]

Report waiting more:
   say "It is now [time of day + 1 minute]."

[And if we want to ensure that the player doesn't (accidentally or intentionally) put the interpreter through a really long loop, we could put an upper limit on his patience:]

Check waiting more:
   if the time understood is greater than one hour, say "You really haven't got that kind of patience." instead.


Test me with "wait 4 minutes / take apple / wait 7 minutes / wait / wait / wait (etc)".


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


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron