Un ptit bug dans les biblis d'I6 ?

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

Modérateurs: Stormi, Otto Grimwald

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Otto Grimwald le Mar Sep 17, 2013 9:57 pm

Stormi a écrit:
auraes a écrit:
Otto Grimwald a écrit:pour un auteur, le plus simple est quand même de n'avoir à indiquer que la forme telle qu'on l'écrit d'habitude en français.
Ah ! bon !? parce ce que grand-père,en français, tu l’écris grand père !?

Ce n'est pas ce qu'il a dit. Il a dit qu'il faudrait pouvoir ne mettre que 'grand-pere' dans la propriété name sans avoir à en plus rajouter 'grand' et 'pere' pour couvrir tous les cas.


Oui tout à fait, c'est exactement ça. Tu n'as peut-être pas remarqué Auraes, mais je suis favorable à ce qu'apporte ton amélioration au niveau de la syntaxe pour l'auteur : C'est plus rapide, plus logique d'écrire 'grand-père', que d'écrire 'grand' 'père'.
En revanche, c'est moins pratique si le joueur ne peux pas taper "grand père", et ce n'est pas une solution de contraindre l'auteur à taper non seulement 'grand-père' et 'grand' 'père'.


Je pense que Jean-Luc a réalisé un beau travail lorsqu'il a traduit et adapté ces bibliothèques en français, d'autant plus que le français c'est beaucoup plus d'irrégularités, de cas particuliers, de genres à gérer que dans la langue originale en anglais. Après, on peut sans doute mieux faire, mais il faut que ça apporte plus d'avantages au final que dans ce qui aura été remplacé.

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

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Mer Sep 18, 2013 10:20 am

Stormi a écrit:La question suppose que quelqu'un aurait fait exprès de créer des bugs.
Il semble plutôt que vous fassiez exprès de ne pas les corriger.
Stormi a écrit:Piètre image des gens que tu as là.
Ça, tu t'abstiens.
Stormi a écrit:un peu moins agressive
Qui agresse qui ?
Otto Grimwald a écrit:Je pense que Jean-Luc a réalisé un beau travail lorsqu'il a traduit et adapté ces bibliothèques en français
Personne ne dit le contraire. Il a fait le plus dure. Mais s'il rend son travail public, c'est je pense aussi pour qu'il puisse être amélioré. Mais vous semblez empêcher ces modifications; j'aimerai bien avoir son point de vue. Et si il y a des modifications à faire, et il y en a, je ne suis certainement pas le plus compétant ni le plus intéressé pour les faire.

Dixit.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Stormi le Mer Sep 18, 2013 10:35 am

auraes a écrit:
Stormi a écrit:un peu moins agressive
Qui agresse qui ?

Cela vaut pour tout le monde, y compris moi. Enfin, en fait surtout toi et moi. Te concernant, le message que tu viens de poster n'est pas un modèle de tact : tu viens encore de nous prêter l'intention de ne pas corriger les bugs alors qu'on n'a fait que dire le contraire. On veut simplement que ça soit fait bien.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Stormi le Mer Sep 18, 2013 11:16 am

Enfin, à titre personnel, j'accorderai beaucoup plus d'intérêt à tes propositions quand je n'aurai plus l'impression d'être considéré comme buté et réticent à tout changement. Tout changement, je le considère, je l'étudie, et le cas échéant je pointe ce qui ne va pas dans la proposition. Quant à corriger les bugs, tout le monde est pour : y a qu'à. Sauf que ça demande de l'investissement et qu'on fait tous ça sur notre temps libre parmi d'autres engagements.

Tentative de résumé de nos échanges, faisant abstraction du ton employé par les uns et les autres :

- Tu as signalé un problème dans LanguageToInformese et tu as donné une solution : je l'ai corrigé.
- Tu as signalé un problème avec la gestion des tirets et proposé une solution qui apporte plus d'inconvénients pour les auteurs et les joueurs que la situation actuelle : j'ai bien pris note du problème, mais je ne peux pas appliquer ta correction telle quelle.
- Tu as signalé un problème sur les pronoms, mais sans dire quel est ce problème (ou bien j'ai mal vu), comment il se manifeste, quelles sont ses conséquences : je n'ai pas encore regardé. Plus d'informations me motiverait sûrement.
- Tu as signalé un problème avec les accents sur 'à' et 'là' dans la grammaire, et proposé une solution qui ne convient pas totalement (risque de comportement inexplicable pour le joueur si 'à' se retrouve par malheur dans le dictionnaire). J'ai bien noté le problème. On a une solution de contournement à l'heure actuelle, mais on pourrait faire mieux. Y a plus qu'à.
- Otto a signalé un problème avec les apostrophes dans inform 7 en français. On pourra peut-être corriger dans la lib francophone, à moins que cela ne soit à corriger dans inform lui-même.
- Tu as signalé que "je" est effacé en premier mot mais pas 'tu' 'nous' 'vous'. Quelle serait la solution ?
- Tu as signalé que les ordres donnés à des personnages peuvent être altérés à cause des modifications qu'on apporte au texte. Quelle serait la solution ?
- Tu as signalé que des fonctions de LanguageLM ont été désactivées : quel est le problème exactement ?

En résumé : merci pour tous les rapports de bug, et merci d'avance pour soit des solutions concrètes qui tiennent compte de tous les paramètres en jeu, soit pour ta patience et ta compréhension.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Mer Sep 18, 2013 1:56 pm

Et tu ramasses la copie à la fin !


Stormi a écrit:En résumé : merci pour tous les rapports de bug, et merci d'avance pour soit des solutions concrètes qui tiennent compte de tous les paramètres en jeu, soit pour ta patience et ta compréhension.
Point trop n'en faut.

Bon, avant que je parte hiberner pendant de longs mois et sans ordinateur, je prendrai peut être le temps de répondre...

Mais là, je regardai les "Petits trucs bien utiles en Inform 6" d'Hugo Labrande sur son site http://hlabrande.fr/if/inform6trucs.html et j'ai quelques commentaires à faire :

1.Éviter (très) localement une clarification :
Code: Tout sélectionner
parse_name [ n w;
   w = NextWord(); while(w) {
   if (w = 'nom' && action_to_be == ##Action && condition) {n=n+10;} else {n++;}
   }
return n;
],
Il sert à quoi le While(w) ? À rien. Il manque un w = NextWord() dans la boucle.
Code: Tout sélectionner
parse_name [ n w;
   w = NextWord();
   while(w) {
      if (w = 'nom' && action_to_be == ##Action && condition)
         n=n+10;
      else n++;
      w = NextWord(); !/* Sinon le while ne sert à rien
   }
return n;
],

2. Quand votre jeu n'a pas de salle plongée dans l'obscurité (Zarf) :
Code: Tout sélectionner
[ OffersLight obj;
   if (obj == nothing)
      rfalse;
   else rtrue;
];
Définir une class room avec l'attribut light semble quand même plus aproprié.
Code: Tout sélectionner
Class Room has light;
Room jardin;
Room parc;
etc

3. Reconnaître des noms avec des apostrophes dedans:
"Quand Inform parse des commandes, si il voit des apostrophes, il rajoute un espace après, ce qui transforme le mot en deux mots ;"
Ces sont les librairies française qui font ça : pas Inform, qui ne coupe que le point,la virgule et le guillemet.(un caractère espace et féminin, donc "une" espace et non "un" espace...)

4.Attendre que le joueur appuie sur une touche (Roger Firth):
Est-ce que ce type de conseil n'est pas obselète, et fonctionne il pour Glulx ?
Code: Tout sélectionner
[ attendre notNeeded; @read_char 1 notNeeded; rtrue; ];
La déclaration de la routine : read_char 1 time routine -> (result)
Pour Zcode :
Code: Tout sélectionner
[ attendre key;
   read_char 1 ->key;
];
Pour être compatible Zcode/Glulx mieux vaut utiliser :
KeyCharPrimitive();
KeyDelay(time);
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Mer Sep 18, 2013 3:21 pm

Stormi a écrit:Tentative de résumé de nos échanges, faisant abstraction du ton employé par les uns et les autres :

Tu peux rajouter sur ta liste que :

> Vous mangez la pomme | Et traduit, après bidouilles : mangez vous la pomme
Donc rejet du parser (C'est pareil pour Nous.)
>Vous regardez | Fonctionne, sauf que la forme pronominale c'est : Vous vous regardez.

En fait, il traite le 'vous' ou 'nous' comme une forme pronominale.(Je passe sur le fait d'avoir choisi 'vous' pour marquer, après le verbe, la forme pronominal. 'soi' prête moins à confusion.)
> Se regarder : regarder soi.

La solution est simple, tu remplaces cà :
Code: Tout sélectionner
! Suppression de 'je' ou 'j^' en début de phrase.
    ! Par exemple, "je vais au nord" devient "vais au nord".
    if (Mot(0) == 'je' or 'j^') {
        EcraseMot(0);
        Tokenise__(buffer,parse);
    }
par ça :
Code: Tout sélectionner
if (Mot(0) == 'je' or 'j^' or 'tu' or 't^' or 'on' or 'nous' or 'vous') {
        EcraseMot(0);
        Tokenise__(buffer,parse);
    }
Par contre vos librairies ne gèrent pas les verbes pour le 'tu' ! Le nous et le vous, oui !? Alors qu'ils sont quand même plus improbables et moins utiles.

Pour le 'à', tu remplaces dans ta routine enleve_accents cà :
Code: Tout sélectionner
if (word==0) ! non compris
par ça:
Code: Tout sélectionner
if (word==0 || word == 'à//') ! non compris

Pour l'apostrophe, tu remplace ça :
Code: Tout sélectionner
 for (i=WORDSIZE:i<WORDSIZE+NbChars():i++) {
        if (buffer->i == '-') LTI_Insert(i++, ' ');
        if (buffer->i == ''') LTI_Insert(++i, ' '); ! ''' !*! autre notation ? '\'' par exemple ?
    }
Par ça :
Code: Tout sélectionner
 for (i=WORDSIZE:i<WORDSIZE+NbChars():i++) {
        if (buffer->i == '-') LTI_Insert(i++, ' ');
    }
Et ça, dans ta routine enleve_accents :
Code: Tout sélectionner
for (i=at:i<at+len:i++)
                if (buffer->i=='é') buffer->i='e'; !*! plutôt un switch ?
Par ça :
Code: Tout sélectionner
for (i=at:i<at+len:i++)
                if (buffer->i==''') { LTI_Insert(++i,' '); at++; }
                else if (buffer->i=='é') buffer->i='e';

Et tu testes avec ce bout de code qui affiche le parser. Pour ça, tu rajoutes ça : buferparse(); à la fin de LanguageToInformese() et tu l’enlèveras une fois les tests effectués.
Code: Tout sélectionner
!% -C1
!% +language_name=French

Include "Parser";
Include "VerbLib";

[ LenMot motn; return parse->(motn*4); ];
[ PosMot motn; return parse->(motn*4+1); ];
[ DicMot motn; return parse-->(motn*2-1); ];
[ NbrMot; return parse->1; ];
[ NbrCar; return buffer->1; ];

[ buferparse  motn at lgm;
   print "------------------------^";
   print "bText :     ";
   for (at = WORDSIZE : at < WORDSIZE + NbrCar() : at++)
      print (char) buffer->at;
   print "^bParser : ";
   for (motn = 1 : motn <= NbrMot() : motn++){
      at = PosMot(motn);
      lgm = LenMot(motn) + at;
      if (DicMot(motn)) print " [";
      else print " ";
      for ( : at < lgm : at++)
         print (char) buffer->at;
      if (DicMot(motn)) print "] ";
      else print " ";
   }
   print "^------------------------^";
];
Object Room with description "ROOM" has light;
[ Initialise; location = room; ;
Include "FrenchG";


Tu veux pas revoir la gestion des tirets, tiens regarde, j'en rajoute une couche ! Essaye ça :
> donne le lui
Traduction par le parser : donne -le- lui


Pour le reste...
Dernière édition par auraes le Jeu Sep 19, 2013 6:58 am, édité 2 fois.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Mule hollandaise le Mer Sep 18, 2013 6:25 pm

Merci d'avoir corrigé mon code, en effet j'ai (encore) oublié w = NextWord()....... (c'est la quatrième fois ^^')
Pour 2/ je préfère ma solution : normalement OffersLight parcourt tous les objets de la pièce pour voir si l'un d'entre eux fait de la lumière (que ce soit avec "give player light" ou avec ta solution), mais si on réécrit OffersLight on s'épargne des itérations inutiles sur les objets de la pièce. Le gain de temps doit être de 0.1ms sur un Commodore 64, c'est sûr, mais je préfère tout de même.
Pour 3/, c'est corrigé !
Pour 4/, je recommande l'utilisation de KeyCharPrimitive, deux fois même. J'ai juste mis l'autre code parce que c'est l'ancien que j'utilisais (tiré de "Filaments" ! l'Antiquité quoi ! snif !), mais je vais y réfléchir et il disparaîtra peut-être (je n'avais pas pensé à Glulx, donc il disparaîtra sûrement en fait...).

On s'éloigne du sujet, là. Cependant, si je puis me permettre, Auraes, je trouve que tes messages manquent en général singulièrement de tact - je ne sais pas si tu t'en rends compte, mais c'est ça qui crispe tout le monde. Tu as des idées, une curiosité et une compétence que je reconnaîtrai sans aucun problème, et regarder les biblis pour tenter de les optimiser est super, de même que pour ton aide pour les tests/bêta-tests des jeux. Par contre, tu fais des phrases abruptes et on a l'impression que tu t'énerves quand on ne comprend pas le problème, la solution, ton code, ou qu'on se montre réticents à changer la bibli. J'essaie de passer outre pour me concentrer sur les problèmes en eux-mêmes, mais tout le monde n'a pas la même patience que moi ; c'est bête, si tu tournais tes phrases différemment on perdrait moins de temps à s'échauffer les esprits inutilement ou essayer de contourner les mots pour voir le problème que tu nous a signalé... Bon voilà, c'est tout.
Mule hollandaise
Grand Ancien
 
Messages: 1124
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Mer Sep 18, 2013 8:28 pm

Mule hollandaise a écrit:tout le monde
Mule hollandaise a écrit:on
Mule hollandaise a écrit:nous

Ah ! ça... l'instinct grégaire ! haro ! haro !
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Mer Sep 18, 2013 8:31 pm

Chère ami(e),
sachez que si ma voix vous déplait, je préférerai toujours, celle de l'âne ou du loup, à celle de l'agneau apeuré; je ne suis pas celui que l'on sacrifie.
Veuillez chère ami(e),
chère nous, chère on, chère tout le monde, agréer l'expression sincère et réelle, de mes salutations distinguées.


« Attaquez à découvert, mais soyez vainqueur en secret. »
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Jeu Sep 19, 2013 7:03 am

Mule hollandaise a écrit:Pour 2/ je préfère ma solution : normalement OffersLight parcourt tous les objets de la pièce pour voir si l'un d'entre eux fait de la lumière (que ce soit avec "give player light" ou avec ta solution), mais si on réécrit OffersLight on s'épargne des itérations inutiles sur les objets de la pièce. Le gain de temps doit être de 0.1ms sur un Commodore 64, c'est sûr, mais je préfère tout de même.
Si tu es dans une pièce allumée, vas-tu parcourir tout les objets de la pièce à la recherche d'une source lumineuse !?
L'appel de la fonction : OffersLight(parent(player));
La fonction : tu remarqueras, à la deuxième ligne, que si le parent de player à l'attribut light, la routine s'interrompt. Donc, c'est bien si le parent de player possède l'attribut light que l' « on s'épargne des itérations inutiles sur les objets de la pièce. »
Code: Tout sélectionner
[ OffersLight i j;
    if (i == 0) rfalse;
    if (i has light) rtrue;
    objectloop (j in i)
        if (HasLightSource(j) == 1) rtrue;
    if (i has container) {
        if (i has open || i has transparent)
            return OffersLight(parent(i));
    }
    else {
        if (i has enterable || i has transparent || i has supporter)
            return OffersLight(parent(i));
    }
    rfalse;
];
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Mule hollandaise le Jeu Sep 19, 2013 5:28 pm

Ah oui, exact. Tu veux que je rajoute ta solution sur mon site ?
Mule hollandaise
Grand Ancien
 
Messages: 1124
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Ven Sep 20, 2013 6:54 am

Je ne veux rien du tout. Ce n'est d’ailleurs pas une solution mais l'usage classique de l'attribut light. Tu raisonnes sur moi comme tu raisonnes sur la routine OffersLight() : c'est à dire faussement.
Quant à la lanterne allumée en plein jour, mieux vaut la laisser à Diogène, il en connait l'usage.
Cordialement.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Stormi le Ven Sep 20, 2013 8:07 am

Bien qu'auraes ne veuille rien du tout, pour ma part je t'invite à mettre cette solution sur ton site. C'est d'ailleurs comme ça que j'ai toujours fait pour avoir de la lumière :)
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Otto Grimwald le Ven Sep 20, 2013 8:44 am

Dans inform7, toutes les pièces ont la lumière par défaut (ce qui est plus pratique), et il faut explicitement indiquer qu'un lieu n'a pas de lumière :

Rooms can be "dark" or "lighted", though they are lighted by default, and are lighted in all the examples we have seen so far.


Code: Tout sélectionner
The Sinister Cave is a dark room. "A profoundly disquieting rock formation, apparently sculptured by some demonic hand, this is not a cave in which to relax."

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

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Mule hollandaise le Ven Sep 20, 2013 10:04 am

Stormi a écrit:Bien qu'auraes ne veuille rien du tout, pour ma part je t'invite à mettre cette solution sur ton site. C'est d'ailleurs comme ça que j'ai toujours fait pour avoir de la lumière :)

Ah, ben moi j'ai toujours fait "give player light", je ne sais plus d'où ça sort. Je la rajouterai alors :)

Otto Grimwald a écrit:Dans inform7, toutes les pièces ont la lumière par défaut (ce qui est plus pratique), et il faut explicitement indiquer qu'un lieu n'a pas de lumière :

Je ne savais pas - c'est quand même plus logique !!
Mule hollandaise
Grand Ancien
 
Messages: 1124
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Ven Sep 20, 2013 10:36 am

Mule hollandaise a écrit:je ne sais plus d'où ça sort
Mais de votre Inconcient, chère ami(e), de votre Inconcient !
(Ce « give player light » est admirable ! )
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Lun Déc 23, 2013 7:46 pm

Il semble que 'x//' (ou 'examine') pose un problème dans le fichier grammar.h et ce quelque soit la version des librairies ou du compilateur. Le problème apparait notamment si je modifie 'examine' dans grammar.h et que je le remplace par 'examin' ou 'examiner' ou 'exam'... : x, n'est alors plus reconnu, dans le jeu, comme raccourcis de 'examine'.
Pour tester, un bout de code:
Code: Tout sélectionner
Include "Parser";
Include "VerbLib";

Object room "room" with description "description room" has light;
Object item "item" room with name 'item', description "description item";

[ Initialise; location = room;];

Include "Grammar";
> x item
That's not a verb I recognise.

Pour ceux qui compilent des jeux en anglais et qui voudraient tester, il suffit de modifier 'examine' dans grammar.h et de tester > x dans leur jeu.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar auraes le Lun Déc 23, 2013 8:21 pm

Oups !
C'est Gargoyle qui plante. Ça vient bien de lui et non pas du compilateur ou des librairies. J'avais déjà rencontré ce problème. Frotz est bien plus fiable, notamment pour faire des tests.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar StephaneF le Lun Déc 23, 2013 10:49 pm

ça marche aussi pour glulxe, Frotz ? ou juste la z-machine ?
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 547
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Un ptit bug dans les biblis d'I6 ?

Messagepar Otto Grimwald le Mar Déc 24, 2013 12:40 am

je ne vois pas pourquoi ça fait ça, mais ça n'est sans doute pas lié à Gargoyle, peut-être à bocfel, l'interpréteur par défaut pour gargoyle (qui peut également utiliser frotz)

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

PrécédenteSuivante

Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

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