Nouvelle version 2.3 de la bibliothèque francophone pour I6

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

Modérateurs: Stormi, Otto Grimwald

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Otto Grimwald le Lun Oct 27, 2008 1:25 pm

exact, je ne vois pas trop ce qui pourrait déroger à cela...
Mais d'un autre côté, c'est indiqué "noun", aussi peut-être que l'on peut utiliser cela comme "pousser le meuble contre la porte", et interpecter cela avec pushdir ? On peut le laisser, cela ne dérange pas, éventuellement faire un test.
[EDIT : je viens de tester, la remarque est pertinente, car on peut en effet utiliser cela ainsi, pousser un objet contre un autre. J'ai inclus cela dans l'intro ifiction, mais je n'arrive pas à commiter pour le moment]

Par contre pour "frapper", cela peut être nécessaire : "frapper contre la porte / contre le volet" par exemple.

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

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Stormi le Lun Oct 27, 2008 1:32 pm

Oui tout à fait d'accord pour les autres verbes utilisant la préposition 'contre'.

J'ai peut-être dit une bêtise pour PushDir, on dirait qu'il n'y a pas de contrainte sur le second objet. Dans ce cas, 'pousser contre' est valable.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Stormi le Lun Oct 27, 2008 2:07 pm

J'ai relu le DM4 (http://www.inform-fiction.org/manual/html/s15.html) et testé : si on fait un objet qui est déplaçable de lieu en lieu (auquel cas il faut faire appel à la routine AllowPushDir(), voir l'exemple du DM4), alors il est vérifié que la destination est bien une direction. Pousser la balle au nord fonctionnera, pousser la balle contre le frigo renverra "Ce n'est pas une direction". Si on accepte cette modification cela aura donc plusieurs conséquences (pas gravissimes, mais suffisantes pour que je sois pas entièrement pour, même si je ne sais pas encore non plus si je suis contre) :
- en standard un objet ne peut pas être poussé dans une direction ET poussé contre un objet. C'est l'un ou l'autre, au choix de l'auteur (selon qu'il fait appel à AllowPushDir ou non). Ou alors c'est à l'auteur de tester d'abord dans la routine before si second est une direction.
- si dans un jeu on a à la fois un objet qui peut être poussé dans une direction et un qui doit être poussé contre un objet, ce ne sera pas clair pour le joueur : dans un cas on lui dit "Ce n'est pas une direction" quand il veut pousser un objet contre un autre, dans l'autre cas c'est précisément l'action qui est attendue de lui. Le problème se pose aussi d'un jeu à l'autre, si l'un retient une manière de faire et l'autre une autre. Au sein d'un même jeu, ce sera à l'auteur de garder une cohérence.

Je suis d'avis mitigé, mais tout de même plutôt contre son ajout en standard dans la lib, sachant qu'il reste possible simplement de redéfinir le verbe pour l'auteur qui en a besoin. Cependant, ce n'est pas un avis définitif, notamment parce qu'il semble que l'action ait été prévue pour accepter n'importe quel noun, au départ.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Stormi le Lun Oct 27, 2008 2:35 pm

auraes a écrit:il y a une espace entre les deux mots?!
Code: Tout sélectionner
Constant BUT1__WD     = 'mais pas';


En effet ça ne peut pas marcher (et j'ai testé, ça ne marche pas) car ces constantes ne doivent contenir qu'un mot. On pourrait mettre 'maispas' et supprimer l'espace entre les deux dans LanguageToInformese, mais n'y a-t-il pas des cas où cela risque de poser problème ?

Pour les menus : P aligné sous Q

Je ne crois pas que P = précédent et Q = retour soient l'un au dessus de l'autre dans les menus, il me semble que l'un est à gauche et l'autre à droite. Si quelqu'un veut tester, mais on avait déjà fait en sorte que ça rende pas trop mal.

La présence de la propriété 'article' pour les objets CompassDirection ne semble pas justifiée.

C'est possible, mais n'en étant pas sûr, je préfère qu'on n'y touche pas à moins d'avoir la preuve que cela cause un bug.

Et la table de pronoms ne fonctionne toujours pas.

Peux-tu être plus explicite ?

Il est possible - il me semble - de déployer une grammaire sur plusieurs lignes, ce qui permet de garder les " -> Verbe " alignés. Ce qui facilite la lecture, surtout celle de l'impression papier du document.
J'ouvre mon bloc avec "Verb" et je le referme avec ";" ce qui facilite les ajouts, corrections... plus besoin de déplacer sans cesse le point-virgule.

Là il s'agit d'une question de goûts, moi les choses me semblent très bien comme elles sont, tant qu'au sein de chaque verbe les "->" sont alignés (avec des espaces uniquement car sinon on a des mélanges tabulations/espaces qui dépendent de l'éditeur utilisé et cassent la mise en forme.
Pour le point virgule en début de ligne, ça se discute. Le plus important c'est de garder la même convention pour tous les verbes. En l'occurrence, on a déjà des points virgule en fin de la dernière ligne de grammaire, et on ne modifie pas assez souvent les grammaires pour que l'argument du "plus facile à modifier" soit réellement important. De toutes façons en cas d'erreur ça ne compile pas et on est censés vérifier que ça compile avant tout commit.

Getoff n'est pas utilisé dans FrenchG.h !?
Pourtant, < descendre de/du/des noun > devrait renvoyer vers un '->GetOff ' et non pas vers un '->Exit'.

Bizarre, en effet, je ne sais pas pourquoi il n'a pas été repris en français, il vaudra regarder ça car cela peut toucher la grammaire de plusieurs verbes, voire même toucher la modification récente faite sur "se lever".
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Eriorg le Lun Oct 27, 2008 6:11 pm

stormi a écrit:
auraes a écrit:Pour les menus : P aligné sous Q

Je ne crois pas que P = précédent et Q = retour soient l'un au dessus de l'autre dans les menus, il me semble que l'un est à gauche et l'autre à droite. Si quelqu'un veut tester, mais on avait déjà fait en sorte que ça rende pas trop mal.


Si, ils sont bien l'un au-dessus de l'autre -- en tout cas, ils le sont dans Ma princesse adorée. Mais s'ils sont alignés à droite de l'écran, et non avec le Q sous le P, c'est tout bonnement parce que c'est comme ça dans la version originale en anglais ! (Cf. les menus d'aide de beaucoup de jeux Inform en anglais -- au hasard, Lost Pig, par exemple.) La seule toute petite différence, c'est que, dans la version anglaise, ces lignes ne sont pas complètement collées à droite de l'écran (il y a un espace).

Quant à savoir si c'est plus joli que ça soit aligné à droite ou aligné d'après les lettres P et Q... question de goût, je suppose. Moi, ça ne me paraît pas si mal comme ça, mais je ne m'opposerai pas à un changement si la plupart d'entre vous le jugent nécessaire !
Avatar de l’utilisateur
Eriorg
Grand Ancien
 
Messages: 856
Inscription: Jeu Déc 14, 2006 8:03 am
Localisation: Suisse

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar auraes le Lun Oct 27, 2008 6:24 pm

stormi a écrit:Remarque : ce qu'il faudrait en réalité c'est réussir à ce qu'une grammaire de type : "* noun 'et' noun" fonctionne, c'est certainement possible d'une manière ou d'une autre.

Il me semble que :
Code: Tout sélectionner
Verb 'nouer' 'attacher' 'fixer' 'connecter' 'brancher'
        * noun                                                -> Tie
        * noun '->'/'à'/'a'/'au'/'aux'/'avec'/'sur' noun      -> Tie
        * TexteComprenantEt                                   -> VagueTie;
[ TexteComprenantEt mot ok;
    ok = false;
    do
    {
        mot = NextWordStopped();
        if (mot == 'et') ok = true;
    }
    until (mot == -1);
    if (ok) return GPR_PREPOSITION;
    else return GPR_FAIL;
];
[VagueTieSub;
    L__M(##VagueTie, 1, 0);
];
VagueTie:  "[Reformulez : ", (address) verb_word, " ... avec ...]";
peut être remplacer par :
Code: Tout sélectionner
[ParserError pe; if (pe == MULTI_PE && action_to_be == ##Tie) <<Tie noun second>>; rfalse;];
En ajoutant au verbe la grammaire * noun noun -> Tie
Reste à tester de manière un peu plus poussive. Il semble que Parsererror soit une bonne entrée pour répondre à de multiples problèmes.
stormi a écrit:Je ne crois pas que P = précédent et Q = retour soient l'un au dessus de l'autre dans les menus, il me semble que l'un est à gauche et l'autre à droite. Si quelqu'un veut tester, mais on avait déjà fait en sorte que ça rende pas trop mal.
Dans rats.z8 'P' et sous 'Q' et ils ne sont pas alignés verticalement.
stormi a écrit:
stormi a écrit:J'ai peut-être dit une bêtise pour PushDir, on dirait qu'il n'y a pas de contrainte sur le second objet. Dans ce cas, 'pousser contre' est valable.
j'ai énuméré quelques verbes sans vraiment y réfléchir, je trouvais simplement que la préposition 'contre', dans certains cas, pouvait être intéressante.
stormi a écrit:Cependant je dois réellement faire un effort pour passer outre la première mauvaise impression que me font certains de tes messages pour réussir à réfléchir aux propositions qu'ils contiennent de manière objective.
Cependant je dois réellement faire un effort pour passer outre la première mauvaise impression que j'ai quand j'ouvre French.h et FrenchG.h.
stormi a écrit:J'ai cependant un problème avec ta manière de les proposer, j'espère que ce n'est qu'une impression due à un style un peu lapidaire : il donne l'impression que tu assènes une liste de Vérités (avec un grand V), avec la certitude que ce qui a été fait avant toi est faux et que tes proposition sont LA seule manière de faire.
J'ai passé l'âge des niaiseries de cours de récréation.
je m'intéresse à la Fiction Interactive et à Inform6 en particulier. C'est tout. Je ne propose pas mes conseils, mes solutions à longueur de Forum. Je ne me suis pas ré approprié Inform6.
Inform6 est une merveille de rigueur, de lisibilité dans le code comme dans la documentation.
French.h et FrenchG.h sont des torchons. C'est la honte.
J'ai passé l'âge.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Otto Grimwald le Lun Oct 27, 2008 10:26 pm

je ne connaissais pas bien AllowPushDir(), en fait si, je l'avais utilisé dans un jeu mais je l'avais oublié :)

Pour le coup de "contre" ajouté ou pas avec "pousser", cela dérange pas de l'ajouter, car la confusion serait la même avec le mot "vers", qui est déjà présent : "pousser la boîte vers le nord" <=> "pousser la boîte vers la machine". Aussi ce n'est pas dérangeant de rajouter "contre" ici.
On peut d'ailleurs mixer les deux possibilités, illustrées ici dans le code de "introifiction" :
http://svn.tuxfamily.org/viewvc.cgi/inf ... iew=markup

Code: Tout sélectionner
Object    Table "table" Taverne
   with
      description "Une table près de l'entrée.",
      name 'table',
      endroit 0,
      before [;
         PushDir:
           if (second == PorteTaverne)
             {
              if (self.endroit == 2) { print "Elle y est déjà.^" ; rtrue ;}
               else  print "Vous poussez la table près de la porte.^"; self.endroit = 2 ; rtrue ;     }
           if (second == Bar)
             {
              if (self.endroit == 3) { print "Elle y est déjà.^" ; rtrue ;}
             else print "Vous poussez la table près du bar.^"; self.endroit = 3 ; rtrue ; }
           if (second == noun) { "Elle est bien là où elle est actuellement.";}
           else AllowPushDir(); rtrue ;
      ],
   has supporter female;


Ici on peut pousser la table contre le bar, vers la porte, et vers dehors (ou vers l'ouest)

Inform6 est une merveille de rigueur, de lisibilité dans le code comme dans la documentation.


mouais, je connais des gens qui ne peuvent pas piffrer Inform et sa syntaxe. Je ne dis pas cela pour casser gratuitement inform, que j'apprécie, mais bon, le sujet peut prêter à controverse.

French.h et FrenchG.h sont des torchons. C'est la honte.


Je te trouve un peu irrespectueux et injuste par rapport au travail qui a été fait à ce sujet. Déjà FrenchG.h est une quasi copie carbone de Grammar.h traduite en français.
French.h pour sa part a dû avoir plus de remaniements et de "hack", mais c'est plutôt normal car la langue française est un poil plus irrégulière que la langue anglaise (et pas qu'un peu)...

Au final on a un système qui fonctionne plutôt bien, qui est certes perfectible, mais je pense que ce n'est pas cela qui écrit toute les histoires, et de toute façon on se retrouve avec un système qui est quand même très proche de ce qu'il y a en langue anglaise.

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

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Eriorg le Mar Oct 28, 2008 3:32 am

Mais puisque tu n'as pas l'air satisfait de la traduction française actuelle d'Inform 6, auraes, peut-être pourrais-tu en faire une autre, qui corresponde mieux à ta vision de ce qu'une telle traduction devrait être ? Ce serait, je n'irais pas jusqu'à dire plus facile (encore que tes nombreuses remarques suggèrent que tu t'y connais assez pour en être capable), mais nettement moins frustrant que de faire des tas de suggestions dont beaucoup sont refusées...

Après, les auteurs de jeux pourraient choisir librement la traduction qu'ils préfèrent.

(Euh... j'espère qu'il n'y a rien dans la licence d'Inform qui interdise de faire plusieurs traductions dans une même langue ?)
Avatar de l’utilisateur
Eriorg
Grand Ancien
 
Messages: 856
Inscription: Jeu Déc 14, 2006 8:03 am
Localisation: Suisse

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Otto Grimwald le Mer Oct 29, 2008 8:53 am

Auraes, compte tenu de tes solides connaissances d'Inform 6, de tes nombreuses remarques souvent pertinentes, mais aussi parfois des discussions qui s'ensuivent sur la possibilité ou pas d'inclure tes suggestions dans les bibliothèques francophones d'Inform 6, on pense qu'il serait bien que tu puisses avoir un accès au dépôt SVN pour travailler sur une branche de développement, que l'on pourrait ainsi tester en parallèle de la branche courante sur nos jeux.

Si cela t'intéresse, tu peux t'enregistrer sur TuxFamily et on ouvrira l'accès :

http://www.tuxfamily.org/

Le processus d'installation et d'utilisation de SVN est expliqué ici :
viewtopic.php?f=2&t=267

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

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar auraes le Jeu Oct 30, 2008 11:31 am

Je n'ai aucune compétence particulière que ce soit en Inform6, programmation, narration ou langue française.
Je fais simplement quelques suggestions.
Peut-être que je proposerai ma version - basée sur la 2.1 - des librairies. En chantier... Elles n'ont pas vocation à être des librairies de base.
De toute façon, je ne vais pas vous embêter bien longtemps.

Quelques suggestions pour les librairies Inform6 :
+ Verb 'lire' * noun 'sur' noun -> Consult;
! lire message, inscriptions... sur mur, pancarte...
! il y a déjà [* noun 'sur' topic] mais c'est plus compliqué à gérer.
! ([* noun 'sur' topic] prend la main si [noun 'sur' noun] échoue.)

+ Verb 'tourner' 'retourner' * noun -> Turn;
+ Verb 'regarder' *'derriere' noun -> Turn;
! (Pour regarder facilement derrière un objet.)

~ Verb 'appuyer' *'sur' noun -> Switch; !Au lieu de Push
! SwitchSub de type : Si (on) SwitchOff Sinon SwitchOn;

+ Verb 'regarder' *'par' noun -> Search; Puisqu'il y a 'a_travers'
+ Verb 'allumer' * -> SwitchOn;
+ Verb 'éteindre' * -> SwitchOff;
+ Verb 'laver' *'vous' -> Rub; !se laver, se nettoyer...
* noun -> Rub; !laver objet
+ Verb 'souffler' *'sur' noun -> Blow; !sur bougie
+ Verb 'excuser' *'vous' -> Sorry; !s'excuser
+ Verb 'verrouiller' * noun -> Lock;
+ Verb 'déverrouiller'* noun -> UnLock;
!(Affecter noun.with_key sinon cela bogue)

~ Verb 'boire' 'de'/'du' 'l^' noun -> Drink;
! A quoi sert le 'l^' (boire de l'eau?)
! Si il est utile alors il doit l'être aussi dans Eat
~ Verb 'manger' 'de'/'du' 'l^' noun -> Eat;
! (Manger de l'orange, de l'ours...?!)

!En vrac...----------------------------------------------------
Ajouter : Sortir 'dans' ! dans la cour, le jardin ?!
Ajouter : jeter/lancer par/vers ?!
Ajouter : se déshabiller puisque il y a s'habiller.
Ajouter : prendre sur/dans ?!
!(Si une pomme est 'sur X' et une autre 'dans X', prendre la bonne pomme)
Boire, c'est vider & manger. ?!
!Il doit être possible de le gérer avec Empty, Emptyt et Eat.

(Mes tabulations ont toutes sautées...pfffff...)
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar Yoruk le Jeu Oct 30, 2008 5:39 pm

Tiens, tant que j'y pense : ajouter "patienter" comme synonyme "d'attendre" :)
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Nouvelle version 2.3 de la bibliothèque francophone pour I6

Messagepar auraes le Ven Oct 31, 2008 8:18 pm

Des petit bogues vus avec rats.z8 :
Au début du jeu, lorsque l'inventaire et vide et que je saisie : <poser tout>, j'ai le message par défaut : "Pouvez-vous préciser l'objet concerné par cette action, ou à utiliser ?^". Par la suite, après avoir pris/posé un objet, le message par défaut sera : "Rien n'est disponible !"
Il y a un bogue dans la gestion du menu d'aide. Je saisie : <aide><solution><q> et j'ai le message [Appuyiez sur Espace] qui vient interférer.
/***
La librairie 2.3 ne gère pas <prendre 'du' pain> <prendre 'de la' confiture>.
/***
Un petit BONUS, ma grammaire de communication avec les personnages (C'est du boulot!)
Code: Tout sélectionner
Verb 'parler'
   * 'a' creature            -> Tell
   * 'a' creature 'de' topic    -> Ask
   * 'de' topic 'a' creature    -> Ask reverse   
;
Verb 'demander'
   * 'a' creature noun       -> AskFor
   * noun 'a' creature       -> AskFor reverse   
   * 'a' creature 'de'   topic   -> AskTo
;
Verb 'interroger''?//'
   * creature 'sur' topic       -> Ask
;
Verb 'dire'
   * 'a' creature 'de' topic    -> AskTo
   * topic 'a' creature       -> Answer
;
Verb 'repondre'   
   * 'a' creature topic      -> Answer reverse
   * topic 'a' creature       -> Answer
;

Avec un petit Objet pour tester le Ask:
Code: Tout sélectionner
object    bob "Mr bob" debut
       with name 'bob',    
        description "Un type sympa...",
        life [;
           Ask: switch (second){
                 'Inform6': "Un super logiciel!";
                 'bob','lui': print_ret (address) self.name," ,c'est moiiiiii. ", (name) noun,".";
                 'moi': "Et! Mais je vous connais pas?";
              }   
              print_ret   "AskDefault: Je ne sais rien sur @<< ",(address) second," @>>";
           default: "Pour l'instant c'est tout...";
        ],
        has    animate male proper
;
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Précédente

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