Bibliothèque (French.h) : pistes d'amélioration

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

Modérateurs: Stormi, Otto Grimwald

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Mer Sep 22, 2010 1:32 pm

Pour tester LanguageNumber (n) :
Code: Tout sélectionner
! Avec n >= 0  && n <= 10000 (interval imposé par number.)
[ NombreSub;
    print (LanguageNumber) noun, "^";
];
[ NombreToSub i;
   if (second == noun) print (LanguageNumber) noun, "^";
   if (second < noun)
      for (i = noun : i >= second : i--)
            print (LanguageNumber) i, "^";
   if (second > noun)
      for (i = noun : i <= second : i++)
            print (LanguageNumber) i, "^";
];
Verb 'nbr'
   * number -> Nombre
   * number number -> NombreTo
;
! > nbr 123
! > nbr 123 150
! > nbr 150 123
Sinon évidemment :
for (i = -32767 : i <= 32767 : i++)
    print (LanguageNumber) i, "^";

Il manque aussi une espace avant et après le " h " dans LanguageTimeOfDay
Code: Tout sélectionner
[ LanguageTimeOfDay hours mins;
    print hours/10, hours%10, "h", mins/10, mins%10;
];
! 10h30 10h00
[ LanguageTimeOfDay hours mins;
    print hours/10, hours%10, " h";
    if (mins > 0) print " ", mins/10, mins%10;
];
! 10 h 30  10 h
C'est mieux et cela respecte les règles typographiques.
Dernière édition par auraes le Ven Sep 24, 2010 5:33 am, édité 6 fois.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Mer Sep 22, 2010 6:41 pm

Quelques bogues et suggestions Inform6:

Verb 'manger' 'devorer'
* 'de/du' held -> Eat;
>> * 'de'/'du' held -> Eat;

Verb 'boire' 'avaler' 'siroter'
* 'de'/'du' 'l^' noun -> Drink
>> 'l^' pour boire de l'eau, mais c'est un article, il est inutile ici.

* 'à'/'a'/'au'/'aux'/'sur' noun -> ;
>> Quel est l'intérêt de supporter la préposition « à » avec accent dans la grammaire si ce n'est de l'alourdir, alors que de toute façon les verbes de la grammaire ne les supportent pas!

Verb 'enlever' 'oter' 'retirer'
* held -> Disrobe
* multiinside 'de'/'du'/'des'/'d^' noun -> Remove;
>> * noun -> Take
(enlève le rocher, le vase, ...)

>> Il manque "verser" (renverser) comme synonyme usuel
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Stormi le Jeu Sep 23, 2010 8:47 am

auraes a écrit:Verb 'manger' 'devorer'
* 'de/du' held -> Eat;
>> * 'de'/'du' held -> Eat;

En effet, bien vu.

Verb 'boire' 'avaler' 'siroter'
* 'de'/'du' 'l^' noun -> Drink
>> 'l^' pour boire de l'eau, mais c'est un article, il est inutile ici.

Cela semble logique oui, me semble inutile à moi aussi.

* 'à'/'a'/'au'/'aux'/'sur' noun -> ;
>> Quel est l'intérêt de supporter la préposition « à » avec accent dans la grammaire si ce n'est de l'alourdir, alors que de toute façon les verbes de la grammaire ne les supportent pas!

Que veux-tu dire par "ne les supportent pas" ? Chez moi ça marche, et c'est grâce à ce 'à' dans la grammaire. Et sans ça ne fonctionne pas.

Verb 'enlever' 'oter' 'retirer'
* held -> Disrobe
* multiinside 'de'/'du'/'des'/'d^' noun -> Remove;
>> * noun -> Take
(enlève le rocher, le vase, ...)

Faut voir, j'ai peur d'effets de bord, genre j'ai mon manteau dans les mains et je crois qu'il est sur moi. Je fais "retirer le manteau" et il me dit "Mais vous l'avez déjà !" => bof :)

>> Il manque "verser" (renverser) comme synonyme usuel

Noté.

Merci :)
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Stormi le Jeu Sep 23, 2010 8:56 am

Stormi a écrit:
Verb 'enlever' 'oter' 'retirer'
* held -> Disrobe
* multiinside 'de'/'du'/'des'/'d^' noun -> Remove;
>> * noun -> Take
(enlève le rocher, le vase, ...)

Faut voir, j'ai peur d'effets de bord, genre j'ai mon manteau dans les mains et je crois qu'il est sur moi. Je fais "retirer le manteau" et il me dit "Mais vous l'avez déjà !" => bof :)


Mon exemple est faux :) Je suis ni pour ni contre cette modif, d'autres ont un avis ?
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Jeu Sep 23, 2010 12:09 pm

Concernant la préposition « à » avec l'accent dans FrenchG.h :

Soit les accents sont supprimés après la saisie :
> répondre à bob = repondre a bob
Dans ce cas le support de « à » par la grammaire n'a aucun intérêt.
Verb 'repondre'
'a' creature ->

Soit les accents ne sont pas supprimés après la saisie :
> répondre à bob
Mais dans ce cas la grammaire doit supporté le « à » mais aussi l'accent sur le « é » de « répondre. »
Verb 'répondre' 'repondre'
'à' /'a' creature ->
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Stormi le Jeu Sep 23, 2010 1:10 pm

Ce n'est pas si simple. La suppression des accents intervient avant certaines choses, et après d'autres.

Globalement les accents sont supprimés pour les verbes et les noms, et pour tout en fait SAUF que inform essaie de matcher la grammaire d'un verbe AVANT que l'accent ne soit supprimé de la préposition, d'où cette nécessité exceptionnelle de gérer les accents dans les prépositions au sein des grammaires de verbes. Pour le nom des verbes en revanche ça fonctionne sans problème.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Otto Grimwald le Jeu Sep 23, 2010 1:12 pm

je ne suis pas contre la modif en question.

Pour les prépositions, il me semble aussi que si on n'ajoute pas le 'à', ça coince. Et je crois (à vérifier), que le parser ne supprime les accents que pour les noms et les verbes, et pas dans le cas de ces prépositions.

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

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Jeu Sep 23, 2010 6:22 pm

Vous êtes pour le moins bizarre !?

Mais puisque le joueur peut ne pas saisir les accents, les routines sont censés fonctionner selon que la préposition « à » ait un accent ou pas !

Les seuls intérêts de conserver les accents à la saisie sont :
- pour le verbe écrire : Si le joueur écrit quelque chose cela doit s'afficher tel qu'il l'a écrit et sans fautes d'orthographes (donc avec les accents s'il les a saisies.)
- pour différencié un « dé » à jouer (ou de couture) de la préposition/article partitif « de »
- pour différencier éventuellement des verbes qui diffèrent seulement par leurs accents. (ex : ?!; De toute façon la grammaire actuelle ne supporte pas les accents sur les verbes.)
- ...
LanguageToInformese() intervient après la saisie donc bien avant que cela n'est un sens
quelconque pour les librairies.
Votre routine enlève_accents() parcoure chaque lettres de la saisie et supprime les accents. Elle n'a évidement aucune notion de ce qu'est un verbe, une préposition, etc.
Je lis d'ailleurs ça dans LanguageToInformese(); Je cite :
« enleve_accents(); ! sinon "à" n'est pas reconnu !*! placer cette fonction encore plus en amont ? »

Mais j'ai beaucoup mieux !
Question :
Pourquoi, alors que la grammaire actuelle du verbe « manger » est boguée cela fonctionne ?
Verb 'manger'
* held -> Eat
* 'de/du' held -> Eat ; ('de/du' à la place de 'de'/'du')
« > manger du sucre et de la confiture  »
O.K.
Et cela même si la grammaire du verbe était :
Verb 'manger'
held -> Eat
Donc « * 'de/du' » ne sert à rien et cela est vrai pour tous les verbes de la grammaire.

La grammaire du verbe « prendre » actuelle est la suivante :
Verb 'prendre'
* multi -> Take
'de'/'du' n'apparaissent pas pourtant cela fonctionne !
« > prendre de la confiture et du sucre »
O.K.

J'ai la réponse.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Stormi le Ven Sep 24, 2010 8:16 am

auraes a écrit:Mais puisque le joueur peut ne pas saisir les accents, les routines sont censés fonctionner selon que la préposition « à » ait un accent ou pas !

Et c'est le cas.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Ven Sep 24, 2010 11:08 am

Donc l'accent sur le "à" dans la grammaire ne sert à rien.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Stormi le Ven Sep 24, 2010 11:20 am

Je n'ai toujours pas compris pourquoi il ne sert à rien, puisque SANS lui on ne peut pas taper "parler à toto", mais AVEC lui on peut taper "parler à toto"... Et il ne fait de mal à personne, si ?

On doit supporter à la fois ceux qui tapent "parler à" et ceux qui tapent "parler a", et pour les prépositions, j'ignore pourquoi mais c'est comme ça, on doit préciser les deux alternatives explicitement dans la grammaire.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1205
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Ven Sep 24, 2010 11:41 am

Cela doit être ce que l'on nomme la « logique floue .»
- La grammaire supporte les mots avec accents.
- La grammaire ne supporte pas les mots avec accents.
- La grammaire supporte les mots avec et sans accents.
Logique.
- La grammaire supporte « UN PEU » les mots avec accents.
Logique floue!

Concernant la SVN inform7 de LanguageNumber(n), à vue d'œil et sans tests j'aperçois :
>> " milliards", " millions" au pluriel mais pas au singulier ; Je m'inquiète !
Pourtant "un milliard, un million" ne prennent pas la forme du pluriel.

>> " cents", " cent ", "cent " mais pas "cent" sans espaces  !
Pourtant "100" s'écrit "cent" sans espaces.
Ceci-dit cent est plutôt gratiné :
cent
trois cents
trois cent dix
mille cent = onze cents
cent mille
cents millions
cinq cents millions
etc
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Ven Sep 24, 2010 5:08 pm

Votre grammaire ne peut pas supporter :
> donne-le-lui (ou donne-la-lui, donne-les-leur, donne-lui la pomme, etc)
Pour au moins deux raisons :
- Votre table de pronoms et fausse
- Votre grammaire est incomplète.

Verb 'donner'
* held '->'/'à'/'a'/'au'/'aux' creature -> Give
'->'/'à'/'a'/'au'/'aux' creature held -> Give reverse;
« donner » attend une préposition '/'à'/'a'/'au'/'aux' dans tous les cas de figure.
Il manque : * held creature -> Give

Ma librairie fonctionne très bien :
> donne-la-lui (donne la pomme à bob)
Verb 'donne'
* held creature -> Give ! donne-la-lui
* creature held -> Give reverse ! donne-lui la pomme
* held 'a' creature -> Give ! donne la pomme à Bob
;
held = -la = pomme
creature = -lui = Bob
O.K.
Code: Tout sélectionner
!% +include_path=./,./Lib/Base,./Lib/Contrib
!% +Language_name=French
!!% -v8
Constant Story "MYGAME1";
Constant Headline "^My first Inform game.^";
!Constant MANUAL_PRONOUNS;

Include "Parser";
Include "VerbLib";

object parc "parc"
   with
      description "Le parc aux promoms.",
   has light
;
object bob "bob" parc
   with
      name 'bob',
      description "c'est bob!",
   has static animate male proper
;
object pomme "pomme" parc
   with   
      name 'pomme',
      description "c'est une pomme!",
   has edible female
;
[ Initialise;
    location = parc;
   ! "^Test des pronoms!^";
];

Essayez!
Voilà, je vous laisse. Bonne continuation.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Otto Grimwald le Ven Sep 24, 2010 9:02 pm

auraes a écrit:>> " milliards", " millions" au pluriel mais pas au singulier ; Je m'inquiète !
Pourtant "un milliard, un million" ne prennent pas la forme du pluriel.


moi je ne m'inquiète pas trop quand même : j'ai pas mal d'autres choses à faire, et cela ne fait pas partie de mes priorités. C'est bien si cela peut être amélioré, mais la probabilité pour qu'un auteur de jeu utilisant Inform 7 ait à la fois besoin d'écrire des nombres en toutes lettres, et en plus utilise des valeurs plus hautes que le millier, et en plus tombe justement sur 1 milliard et pas 2 ou 3 ou 9 milliards, et ben elle se chiffre sans doute en rapport avec ces valeurs incriminées.

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

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Sam Sep 21, 2013 2:33 pm

Un parser à pronoms à tester avec le librairies 6/12 et la dernière version du compilateur. Il est très tolérant sur la saisie et permet de saisir des ordres : Bob, donne... : http://auraes.free.fr/inform6/pronoms.z5
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar ciseur68 le Dim Jan 26, 2014 12:49 am

Le Mer Fév 20, 2008 1:11 am (page 2)
Otto Grimwald a écrit:- peut-être que "(en prenant d'abord...)" irait mieux que la traduction standard ("vous prenez d'abord...") ?
=> je ne sais pas pour ma part. Cela ne me choque pas tel que c'est.


Suite à des recherches pour le fonctionnement de la prise d'un objet "automatique", je suis tombé là dessus, et je me dis que le "en prenant d'abord" n'est peut etre pas si mal, si on n'utilise pas la narration à la deuxième personne du pluriel.
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Mule hollandaise le Sam Juil 26, 2014 6:17 pm

En testant Homeland Security, quelques personnes se sont aperçues que certaines réponses par défaut introduisaient des incohérences dans le jeu. Par exemple, on peut crier, chanter ou sauter sur place alors qu'on se cache derrière une caisse !

C'est un problème récurrent, qui introduit un nombre de bugs (au sens Label Mimésis du terme :) ) assez incalculable (du genre on peut toucher ou goûter le soleil ou tout autre objet éloigné dans énormément de jeux, juste parce que l'auteur n'a pas pensé à intercepter ces actions). Du côté de l'auteur, c'est très frustrant : il faut connaître la liste des verbes qui font des actions automatiquement dans leurs réponses par défaut (goûter, toucher, danser, crier, sauter, saluer, chanter, il me semble) et se poser la question à chaque fois si c'est cohérent avec la situation. Bien sûr, on ne le fait pas, et ça fait des bugs - certes invisibles pour la plupart des joueurs, qui n'essaieront pas forcément ces verbes, mais quand même. Après, bien entendu, les auteurs oublient parfois de mettre des réponses qui sembleraient cohérentes, et c'est un autre problème :)

Est-ce qu'on ne pourrait donc pas réfléchir à reformuler ces réponses par défaut de sorte à ce qu'elles ne fassent pas d'action, mais à la place trouvent une raison pour ne pas le faire ? Je pense que ça simplifierait la vie de beaucoup d'auteurs :) C'est sûr, on s'éloignerait peut-être un peu de la traduction de l'anglais, mais je pense que c'est pour le mieux. Par exemple :
Code: Tout sélectionner
Chanter -> "Vous ne chantez pas très bien"
Goûter -> "Vous préférez garder votre langue dans votre bouche"
Toucher -> "Vous ne mettez pas vos mains partout"
Crier -> "Vous avez peur que quelqu'un vous entende" (même si ça n'irait pas dans toutes les situations, par exemple les jeux post-apocalyptiques !)
Saluer -> "Votre timidité prend le dessus au dernier moment"
Danser -> "Vous dansez très mal"
Sauter -> "Vous ne voyez pas à quoi ça vous avancerait"

(c'est un brouillon rapide, c'est à améliorer)

Et tant que j'y suis, la réponse à >écouter x ("Vous n'entendez rien de particulier") ne me plaît pas non plus, vu que ça dit qu'on n'entend rien même si on est, par exemple, dans une boîte de nuit... Est-ce qu'on pourrait réfléchir à un truc du genre "Ca ne fait pas de bruit particulier" ?
Mule hollandaise
Grand Ancien
 
Messages: 1115
Inscription: Mar Aoû 29, 2006 10:57 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar auraes le Dim Juil 27, 2014 4:54 am

Mule hollandaise a écrit:juste parce que l'auteur n'a pas pensé à intercepter ces actions

Si tu mets systématiquement un default: dans tes before ou after de chaque objet, tu t'évites bien des soucis.
Code: Tout sélectionner
Soleil:
before [;
      take, touch: "[...]";
      burn: [...];
      go, climb: "[...]'
      default: "Indifférent, il vous inonde d'une lumière qui l'épuise."; !hi hi hi... c'est du lourd!
   ],

Si un objet suscite trop de messages par défaut, c'est peut-être qu'il n'a pas ou n'est pas à sa place dans le jeu. Un objet porte, s'il est là pour « meubler », s'il ne constitue pas un obstacle d'un intérêt réel, un « verrou » dans le game design : que fait-il là !?

Pour ceux qui utilisent Inform6 et les librairies, vous pouvez mettre cela dans votre code pour déboguer; c'est très utile, cela permet d'identifier, d'intercepter et de résoudre beaucoup de problèmes.
Code: Tout sélectionner
[ ParserError    error_type;
   print "* ";
   switch (error_type) {
      STUCK_PE:     print"STUCK_PE ",1;
      UPTO_PE:      print"UPTO_PE ",2;
      NUMBER_PE:    print"NUMBER_PE ",3;
      CANTSEE_PE:   print"CANTSEE_PE ",4;
      TOOLIT_PE:    print"TOOLIT_PE ",5;
      NOTHELD_PE:   print"NOTHELD_PE ",6;
      MULTI_PE:     print"MULTI_PE ",7;
      MMULTI_PE:    print"MMULTI_PE ",8;
      VAGUE_PE:     print"VAGUE_PE ",9;
      EXCEPT_PE:    print"EXCEPT_PE ",10;
      ANIMA_PE:     print"ANIMA_PE ",11;
      VERB_PE:      print"VERB_PE ",12;
      SCENERY_PE:   print"SCENERY_PE ",13;
      ITGONE_PE:    print"SITGONE_PE ",14;
      JUNKAFTER_PE: print"JUNKAFTER_PE ",15;
      TOOFEW_PE:    print"TOOFEW_PE ",16;
      NOTHING_PE:   print"SNOTHING_PE ",17;
      ASKSCOPE_PE:  print"ASKSCOPE_PE ",18;
 }
    print " *^";
   rfalse;
];
À mettre entre Include "parser"; et Include "verbLib"; Après il faut se référer à la documentation, page 237, pour les détails de chaque erreur.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Otto Grimwald le Dim Juil 27, 2014 8:32 am

Pas bête le coup du default, quoi qu'il en soit, il me semble juste de modifier les réponses de base pour certains verbes. Notre but a toujours été de donner des réponses par défaut les plus neutres possibles, et celles proposées ici me semblent pertinentes, et ne devraient pas remettre en cause l'expérience des jeux existants.

À force de créer de nouveaux jeux, c'est le type de chose dont on peut se rendre compte au bout de quelques années d'expérience. Tu pourrais intégrer ces nouveaux textes sur le SVN des bibliothèques I6 ?

On pourrait également s'en inspirer pour les bibliothèques d'I7, et je crois d'ailleurs que Natrium avait un peu amélioré certains textes.

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

Re: Bibliothèque (French.h) : pistes d'amélioration

Messagepar Mule hollandaise le Dim Juil 27, 2014 12:05 pm

Ok, j'essaie de faire ça bientôt et je vous tiens au courant !
Mule hollandaise
Grand Ancien
 
Messages: 1115
Inscription: Mar Aoû 29, 2006 10:57 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é

cron