apostrophe

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

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…

Chez moi ça fonctionne pourtant :

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

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…

[code]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.[/code]

incompréhensible …

Peux-tu taper « version » ?

Oui m’sieur

je n’avais pas envoyé sur le site d’inform mes derniers ajouts. Il y a une version plus récente sur ce site :
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…)

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

Le mystère s’épaissit !

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 :

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)

Ce coup-ci c’est bon :slight_smile: super, merci

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

[code]« 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.[/code]

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

Apparemment les apostrophes ne sont plus reconnues, dans les cas normaux où elles l’étaient auparavant !

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 :

'le' $$100000100000 DEFART_PK NULL 'la' $$010000010000 DEFART_PK NULL 'l^' $$110000110000 DEFART_PK NULL

mais l^ signifie apostrophe en code Inform6.

En rajoutant

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 :

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 :

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]";

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)

J’ai trouvé :

[code]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.[/code]

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…

Tu veux dire ralentir le jeu en cours d’utilisation ? Je vais tester, en tous cas, merci de t’être décarcassé !

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]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]][/code]
Ç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.

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 :frowning:

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 :slight_smile: faudrait déjà que toutes les extensions que j’utilise aient été mises à jour, et c’est loin d’être le cas.

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 :

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.

Waw !
Enfin une vraie solution, merci beaucoup !