sábado, 2 de mayo de 2009

interferencias de la librería Inform

Pues resulta que el código para analizar las cadenas de texto introducidas en el prompt (en el BeforeParsing) falla con "dame", no lo detecta, y sólo me queda pensar que la librería transforma los "dame" en otra cosa distinta antes si quiera de que el programador pueda intervenir.

En efecto, he probado a detectar "da" (es decir "d"+"a"+longitud de la cadena=2), y cuando escribo "dame", me lo da por bueno. Comprobado entonces que cada vez que escribes "dame", se descompone en "da" + personaje_jugador.

Un pelín fastidio, ya que te imposibilita la intervención desde el código cuando, como en este caso, pretendes hacer un parseado alternativo.

Ahora me toca revisar todas las formas reflexivas y eliminarlas.

3 comentarios:

Al-Khwarizmi dijo...

Curioso, el AGE hace exactamente lo mismo (y no lo miré de inform, sino que se me ocurrió en su momento).

La verdad es que eso es bueno, porque la mayoría de las veces al usuario no le compensa matarse distinguiendo los pronombres. Es mejor que lo hagan por él en un preprocesado.

Eso sí, el AGE también te deja analizar la cadena antes del preprocesado si tú quieres (aparte de hacerlo con herramientas más potentes que carácter a carácter, claro :D).

Herel dijo...

Ahí está el fallo de Inform, que lo haga antes de la función que deja pie al usuario a intervenir por primera vez.
Sería necesario entonces un React_Before_BeforeParsing().
(que igual existe XD)

Sarganar dijo...

el truco está en LanguageToInformese>>EspanolAInformes (llamado unas lineas antes de BeforeParsing().

En EspanolAInformes/Spanish.h
fijate despues de la linea

if (len > 2) !sólo si tiene más de tres letras


good look!