Modérateurs: Stormi, Otto Grimwald
stormi a écrit:Voilà une correction imparfaite et un peu violente : j'ai tout simplement viré le la les de la définition des pronoms (j'ai remis -la, -les -le à la place).
D'abord (ligne 148 environ)
- Code: Tout sélectionner
! Object pronouns
'-le' $$100000100000 NULL
'-la' $$010000010000 NULL
'-les' $$000110000110 NULL
! '-lui' $$110000110000 NULL
! '-leur' $$000110000110 NULL ! tirets enlevés
! 'le' $$100000100000 NULL ! en espérant que l'article le/la/les ne vienne pas interférer
! 'la' $$010000010000 NULL ! (Le parser a l'air de se débrouiller.)
! 'les' $$000110000110 NULL
'lui' $$110000110000 NULL ! dans "donne-lui", "lui" est m ou f
'leur' $$000110000110 NULL
Et plus loin (ligne 185 environ)
- Code: Tout sélectionner
! 'son' $$100000100000 POSSESS_PK '-lui'
! 'sa' $$010000010000 POSSESS_PK '-lui'
! 'ses' $$000110000110 POSSESS_PK '-lui'
'leur' $$110000110000 POSSESS_PK '-les'
'leurs' $$000110000110 POSSESS_PK '-les' ! tirets enlevés
'son' $$100000100000 POSSESS_PK 'lui'
'sa' $$010000010000 POSSESS_PK 'lui' !*! remplacer par "luy" ?
'ses' $$000110000110 POSSESS_PK 'lui' !*! 2e colonne : mettre m et f ?
! 'leur' $$110000110000 POSSESS_PK 'les'
! 'leurs' $$000110000110 POSSESS_PK 'les'
Grâce aux traitements de la fonction LanguageToInformese, une commande comme "le prendre" fonctionne toujours car transformée en "regarder lui".
En revanche "regarde-le" ne fonctionne pas encore. Il faudrait un traitement spécifique pour ces cas là.
JL a écrit:Salut Stormi, et désolé de n'avoir pu répondre plus tôt. Tu es effectivement sur la bonne voie, et je signale que le commentaire angoissé (mais hélas prémonitoire) "tirets enlevés en espérant que l'article le/la/les ne vienne pas interférer" est très probablement de moi : dans les versions précédentes il y avait un tiret devant le/la/les. Je ne sais plus pourquoi exactement j'avais changé ceci mais c'est très probablement lié à l'usage d'autres formes que l'infinitif, des problèmes subtils apparaissant dans des expressions comme "donne-les" (ou, pire, "donne les") alors que "les donner" en posait moins.
Au fond, cet ajout des autres formes que l'infinitif apporte peu de bienfaits (ce n'est pas suffisant pour rendre le jeu attractif pour plus de monde), tout en ajoutant des bugs.
Array LanguagePronouns table
! word possible GNAs connected
! to follow: to:
! a i
! s p s p
! mfnmfnmfnmfn
! Object pronouns
'-le' $$100000100000 NULL
'-la' $$010000010000 NULL
'-les' $$000110000110 NULL
'-lui' $$110000110000 NULL
'-leur' $$000110000110 NULL ! tirets remis
! 'le' $$100000100000 NULL ! car l'article le/la/les vient parfois interférer
! 'la' $$010000010000 NULL ! par exemple "mange la pomme" est compris comme "mange-la" si "pomme" est inconnu, d'où des messages d'erreur troublants pour le joueur
! 'les' $$000110000110 NULL
! 'lui' $$110000110000 NULL ! dans "donne-lui", "lui" est m ou f
! 'leur' $$000110000110 NULL
Otto Grimwald a écrit:il faudrait donc réussi à mettre en commun ta version (non publiée) 2.1.1. et les améliorations de Stormi. Ensuite je pourrais reprendre cela pour le transformer en version compatible Inform 7.
JL a écrit:Bref, Stormi, si tu as ces modifications encore en tête, je t'invite (si le coeur t'en dit, bien sûr) à les comparer à celles de la version 2.1.1 (où une trentaine de lignes de code dans LanguageToInformese sont liées à cette histoire de tirets).
if ((NbMots()==3)&&(Mot(1)=='le'or'la'or'les'or'-le'or'-la'or'-les')&&(Mot(2)=='lui'or'leur')) { ! "donne le lui" ou "donne-le lui" devient "donne-le-lui"
if (Mot(1)=='le'or'la'or'les') LTI_Insert(PositionMot(1), '-');
LTI_Insert(PositionMot(2), '-');
print "[Mettez toujours un trait d'union entre chaque pronom et le verbe à l'impératif !]^";
}
stormi a écrit:Alors, j'ai regardé, et en effet la version 2.1.1 améliore grandement la gestion des pronoms. Le diagnostic était le même (ambiguïté entre certains pronoms et articles), mais la solution de JL est bien plus élaborée que ma tentative.
J'ai testé un peu, et cela fonctionne bien. J'aurais simplement une modification à apporter à FrenchG.h :
- ajouter la grammaire "creature noun" et "noun creature" au verbe 'donner'. (sinon, on ne peut pas dire "lui donner le truc" ou "donne-lui le truc".
Il y a également une petite correction à apporter là :
- Code: Tout sélectionner
if ((NbMots()==3)&&(Mot(1)=='le'or'la'or'les'or'-le'or'-la'or'-les')&&(Mot(2)=='lui'or'leur')) { ! "donne le lui" ou "donne-le lui" devient "donne-le-lui"
if (Mot(1)=='le'or'la'or'les') LTI_Insert(PositionMot(1), '-');
LTI_Insert(PositionMot(2), '-');
print "[Mettez toujours un trait d'union entre chaque pronom et le verbe à l'impératif !]^";
}
Il faut rajouter un "Tokenise__(buffer,parse);" dans le premier if, sinon "donne la lui" est transformé en "donne -la- lui" au lieu de "donne -la -lui".
Par ailleurs, si les tests montrent que l'absence de tiret devant "le/la/les/lui..." ne pose pas de problème majeur, je suis pour les tolérer silencieusement, sans avertissement, ou au moins rendre l'avertissement plus sympa "Pour une meilleure compréhension de vos commandes, mettez un trait d'union entre chaque pronom et le verbe à l'impératif".
En revanche, il est impossible de taper "donne-le-lui" et d'être compris, car "le" et "lui" ont toujours la même valeur. Il n'y a pas vraiment de reconnaissance fine de "le" désigne un "noun" et lui désigne un "creature", dans ce contexte. Problème soulevé, pas de solution pour l'instant de ma part
JL a écrit:Peut-être que l'emploi des pronoms (et avec autre chose que l'infinitif, en plus) est assez rare, d'autant que tous les jeux ne le permettent pas. Donc cet emploi exceptionnel perturbe les cas courants, notamment ceux où l'article le/la/les est utilisé (quoique, est-ce si courant d'utiliser l'article ? c'est peut-être l'inverse).
> regarder le champignon (regarde le champignon)
bla bla bla un champignon qui a l'air comestible.
> le prendre puis le manger
Ok.
Mmmm c'était bon.
stormi a écrit:au fait JL je ne sais pas si tu as vu, mais j'ai ouvert un fil dédié à la recherche d'améliorations pour la bibliothèque : http://ifiction.free.fr/forumBB/viewtop ... highlight=
Retourner vers Questions techniques et aide pour votre code
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités