apostrophe

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

Modérateurs: Stormi, Otto Grimwald

apostrophe

Messagepar StephaneF le Mer Avr 23, 2014 2:20 pm

Eric, j'ai réinstallé ton extension French, la dernière MAJ , pour tester ce truc avec les tirets et les apostrophes.

J'ai ceci

Code: Tout sélectionner
The AppartAlix is a bâtiment in Etage4. The printed name is "appartement d[']Alix". Understand "appartement" or "appartement d Alix" as the AppartAlix.


Or une fois ingame, si je tape "entrer dans l'appartement d alix" ou "entrer dans l'appartement d-alix", ça fonctionne

par contre "entrer dans l'appartement d'alix" non - c'est bien l'apostrophe qui pose problème...
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Bon anniversaire Inform ! (20 ans)

Messagepar Otto Grimwald le Ven Avr 25, 2014 12:51 pm

Chez moi ça fonctionne pourtant :

> x appartement d'alix
Rien de particulier concernant l'appartement d'Alix.


comme je n'ai pas tout le jeu, j'ai ajouté l'objet dans un des miens:

Code: Tout sélectionner
Ville is a room. The AppartAlix is in Ville. The printed name is "appartement d[']Alix". Understand "appartement" or "appartement d Alix" as the AppartAlix.


As-tu essayé ça dans un jeu vraiment minimaliste ?


... plus que 5 jours...

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

Re: Bon anniversaire Inform ! (20 ans)

Messagepar StephaneF le Ven Avr 25, 2014 5:40 pm

Code: Tout sélectionner
Include French by Eric Forgeot. Use French Language.

World is a room.

The truc is a thing in World. The printed name is "appartement d[']Alix". Understand "appartement d Alix" as the Truc.


World
Vous pouvez voir un appartement d'Alix.

>x appartement d'alix
Vous ne voyez rien de tel, à moins que cela ne soit sans grande importance.


incompréhensible ...
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Bon anniversaire Inform ! (20 ans)

Messagepar Otto Grimwald le Sam Avr 26, 2014 7:43 am

Peux-tu taper "version" ?

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

Re: Bon anniversaire Inform ! (20 ans)

Messagepar StephaneF le Sam Avr 26, 2014 10:43 am

Oui m'sieur

Blabla
An Interactive Fiction par aaaaaaaaaaaaa
Release 1 / Serial number 140426 / Inform 7 build 6G60 (I6/v6.33 lib 6/12N) SD
Identification number: //34C16B2C-6631-4F29-8890-5744AA9A2705//
Interpreter version 0.4.7 / VM 3.1.2 / Library serial number 080126
Standard Rules version 2/090402 by Graham Nelson
French version 9/110414 by Eric Forgeot
Dernière édition par StephaneF le Ven Déc 13, 2019 10:30 am, édité 1 fois.
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Bon anniversaire Inform ! (20 ans)

Messagepar Otto Grimwald le Sam Avr 26, 2014 12:35 pm

je n'avais pas envoyé sur le site d'inform mes derniers ajouts. Il y a une version plus récente sur ce site :
http://svn.tuxfamily.org/viewvc.cgi/inf ... 96&view=co

Désolé pour le dérangement.

(plus que 4 jours... dommage qu'ils n'aient pas ciblé le 28 avril qui est pourtant la date anniversaire...)

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

Re: Bon anniversaire Inform ! (20 ans)

Messagepar StephaneF le Sam Avr 26, 2014 12:42 pm

J'ai copié collé le nouveau code dans ton extension, dans mon programme, et ......... ça ne change rien.

Le mystère s'épaissit !
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Bon anniversaire Inform ! (20 ans)

Messagepar Otto Grimwald le Sam Avr 26, 2014 1:07 pm

Bon, c'est ma faute, dans le dernier jeu que je développais, j'avais rajouté un truc pour éviter ce problème, et j'avais oublié que c'était pour ça que ça fonctionnait.

Le code complet est :

Code: Tout sélectionner
Include French by Eric Forgeot. Use French Language.

Include Punctuation Removal by Emily Short.

After reading a command:
   remove apostrophes.
   
Ville is a room.

The truc is in Ville. The printed name is "appartement d[']Alix". Understand "appartement" or "appartement d Alix" as the Truc.



Du coup ça devrait fonctionner dans Azthath sans faire d'autre modification que celle-ci. (en espérant que ça ne rajoute pas de latence)

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

Bon anniversaire Inform ! (20 ans)

Messagepar StephaneF le Sam Avr 26, 2014 1:38 pm

Ce coup-ci c'est bon :) super, merci
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: Bon anniversaire Inform ! (20 ans)

Messagepar StephaneF le Mar Avr 29, 2014 8:32 am

Bon Eric, navré mais en fait un nouveau problème se pose

Code: Tout sélectionner
"Blabla" by aaaaaaaaaaaa

Include French by Eric Forgeot. Use French Language.

Include Punctuation Removal by Emily Short.

After reading a command:
   remove apostrophes.

World is a room.

The truc is a thing in World. The printed name is "appartement d[']Alix". Understand "appartement d Alix" as the Truc.

The artichaud is a thing in World.


( même code qu'avant, j'ai juste rajouté un artichaud )

World
Vous pouvez voir un appartement d'Alix et un artichaud.

>prendre l'artichaud
Vous ne voyez rien de tel, à moins que cela ne soit sans grande importance.

>prendre le artichaud
D'accord.


Apparemment les apostrophes ne sont plus reconnues, dans les cas normaux où elles l'étaient auparavant !
Dernière édition par StephaneF le Ven Déc 13, 2019 10:30 am, édité 1 fois.
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: apostrophe

Messagepar Otto Grimwald le Mer Avr 30, 2014 8:00 pm

je pense que c'est normal, la bibliothèque ne doit prendre en compte que "le, la, les", et pas "l", enfin normalement c'est pris en compte par ce code dans la bibliothèque :

Code: Tout sélectionner
      'le'     $$100000100000    DEFART_PK       NULL
      'la'     $$010000010000    DEFART_PK       NULL
      'l^'     $$110000110000    DEFART_PK       NULL


mais l^ signifie apostrophe en code Inform6.

En rajoutant
Code: Tout sélectionner
After reading a command:
   remove apostrophes.


je présume ça provoque ce bogue parce que "l" tout seul n'est pas pris en compte.

En attendant on peut rajouter ça mais il faudrait le faire pour chaque mot débutant par une voyelle :

Code: Tout sélectionner
Understand "l artichaud" as artichaud.


Je suis certain qu'on peut faire cela automatiquement avec les regex (chapitre 19.8 du manuel) mais pour le moment je n'y arrive pas. Et puis on verra avec la dernière version d'inform comment c'est géré.

Par exemple pour le moment j'ai ça :

Code: Tout sélectionner
After reading a command:
   remove apostrophes;
    let N be indexed text;
    let N be the player's command;
    replace the regular expression " l " in N with " ";
    say "[N][paragraph break]";


>x l'artichaud
x artichaud

Vous ne voyez rien de tel, à moins que cela ne soit sans grande importance.


mais je ne sais pas comment le réinjecter dans la commande initiale.



Il est peut-être possible aussi d'ignorer une commande (un mot, enfin, une lettre)

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

Re: apostrophe

Messagepar Otto Grimwald le Mer Avr 30, 2014 8:15 pm

J'ai trouvé :

Code: Tout sélectionner
Include Punctuation Removal by Emily Short.

The last command is an indexed text that varies.

After reading a command:
   remove apostrophes;
   now the last command is the player's command;
    let n be indexed text;
    let n be the player's command;
    replace the regular expression "(.*) l (.*)" in n with "\1 \2";
    replace the regular expression "(.*) l (.*)" in the last command with "\1 \2";
 [say "([last command])[line break]"; [pour vérifier la commande remplacée] ]
change the text of the player's command to the last command.


par contre ça fait analyser chaque commande tapée par le joueur pour détecter la chaîne " l " (c'est à dire le résultat de punctuation removal), j'ai peur que ça surcharge encore le jeu...

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

Re: apostrophe

Messagepar StephaneF le Jeu Mai 01, 2014 3:50 pm

Tu veux dire ralentir le jeu en cours d'utilisation ? Je vais tester, en tous cas, merci de t'être décarcassé !
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: apostrophe

Messagepar Natrium le Mer Juil 30, 2014 12:15 am

Bon, je remonte un autre sujet assez ancien, mais comme il existe, je vais pas en faire un autre.

Azathoth, est-ce que tu as eu des ralentissements avec le code d'Otto, finalement ? En fait, il n'est pas super optimisé (variable last command inutile, et qui entraîne deux fois l'utilisation de regex…).

Pour la nouvelle extension, j'ai fait ce code :
Code: Tout sélectionner
Include Punctuation Removal by Emily Short.

After reading a command:
   remove apostrophes;
   if the player's command includes "l":
      cut the matched text;
   [say "[the player's command][command clarification break]"). [pour tester si ça marche]]

Ça semble marcher, tu pourrais tester ?


Aussi (et hors-sujet), en parlant de ralentissements, je sais qu'Azthath est un gros jeu et que tu as déjà eu des problèmes avec ça. La dernière version d'Inform, les jeux compilés sont encore plus lourds, mais plus rapides, d'après ce que j'ai lu. T'es pas obligé de tout reconvertir bien sûr, mais au moins tu le saura.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1164
Inscription: Mar Oct 04, 2011 11:18 pm

Re: apostrophe

Messagepar StephaneF le Mer Juil 30, 2014 12:50 am

Je vais tester, je te dirai ça, merci. Je crois que j'avais abandonné l'idée d'inclure des apostrophes dans les commandes du joueur, à cause d'un autre bug (sans aucun rapport) que ça produisait par ricochet, mais je ne sais plus lequel :(

Pour ce qui est de convertir Azthath je crois que je vais d'abord essayer de finir une version viable de mon jeu, avec l'avant dernière build, et éventuellement, ensuite, essayer de le mettre à niveau :) faudrait déjà que toutes les extensions que j'utilise aient été mises à jour, et c'est loin d'être le cas.
Avatar de l’utilisateur
StephaneF
Grand Ancien
 
Messages: 545
Inscription: Jeu Déc 27, 2007 3:53 pm
Localisation: Moselle

Re: apostrophe

Messagepar Natrium le Mer Déc 03, 2014 5:18 am

Je remonte le sujet pour dire que j'ai trouvé la solution : il n'y a pas besoin d'enlever les apostrophes, il suffit d'ajouter une espace dans les lignes de compréhension :
Code: Tout sélectionner
Understand "appartement d' Alix" as the AppartAlix. [Noter l'apostrophe ET l'espace qui le suit]

C'était tout bête, car comme l'extension française ajoute une espace après l'apostrophe, il suffisait de l'ajouter aussi.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1164
Inscription: Mar Oct 04, 2011 11:18 pm

Re: apostrophe

Messagepar ciseur68 le Mar Juin 09, 2015 1:25 am

Waw !
Enfin une vraie solution, merci beaucoup !
-César-
Avatar de l’utilisateur
ciseur68
Investigateur
 
Messages: 79
Inscription: Mer Fév 10, 2010 6:43 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