komoku / aetheria

Aetheria Game Engine - Migrated from code.google.com/p/aetheria
Other
8 stars 0 forks source link

Desfase entre pronombres y algunas acciones #269

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
A veces se pueden producir fallos de desambiguación cuando se usan pronombres 
enclíticos debido al distinto "alcance" de algunas acciones.

Ejemplo: llevamos el libro A en el inventario. El libro B está en el suelo. 
Tecleamos "coger el libro B y leerlo".

- La acción "coger" se ejecutará (correctamente) sobre el libro B, porque es 
el único que está en el suelo y no tendría sentido coger el libro A.

- Sin embargo, a la hora de meter un libro en el objeto Mentions, esto lo hace 
el código que ejecuta el parseCommand, que es más genérico. En ese código, 
"libro" matchea igual con el libro A que con el B (no se tiene en cuenta cuál 
está en el suelo y cuál no), así que puede (según cuál esté primero) que 
se meta en el objeto Mentions el libro A.

- Por lo tanto, el comando "leerlo" se interpreta como que se refiere al libro 
A en vez de al libro B, lo cual es erróneo.

Puede que esto no tenga solución elegante hasta que no se suban los métodos 
pendientes de Player a Mobile, dado que para cuando se sabe a qué objeto se 
refiere "coger", ya estamos en Mobile (y hacer un instanceof o subir a Mobile 
sólo los métodos que manejan el Mentions y no el resto parece chapucero).

Original issue reported on code.google.com by komoku on 27 Aug 2012 at 4:00

GoogleCodeExporter commented 9 years ago
Errata en la descripción del problema: donde pone "coger el libro B y leerlo", 
debería poner "coger el libro y leerlo". Si realmente hubiésemos tecleado 
explícitamente "el libro B", no habría problema.

El problema es que en este caso, al poner "coger el libro y leerlo", la primera 
orden se referirá al libro B y la segunda al A.

Original comment by komoku on 27 Aug 2012 at 4:28