jarel escribió:
Puede que sea una tontería, pero cuando Jen puso el reto el problema que me imaginé estaba relacionado con esto. A inform le da lo mismo "tener madera de marinero" que "tener un marinero de madera".
En realidad... va un poco más allá... es un problema del propio lenguaje... Lo explico:
Tenemos definido que
Código:
Object -> CajaCerillas "caja de cerillas"
has femenino recipiente abrible ~abierto,
with
nombre 'caja',
adjetivos 'cerillas',
;
Class Cerilla(20)
has femenino,
with
nombre_corto "cerilla",
plural "cerillas",
nombre 'cerilla' 'cerillas//p',
;
En la caja de cerillas el adjetivo es 'cerillas'.
Y en la clase Cerilla, hay un nombre plural 'cerillas//p'. Según el DocumenATE!, esa sola '//p' cambia todas las palabras del diccionario que sean 'cerillas' y las asume como plural. Por lo tanto, la caja de cerillas es "parseada" como una cerilla más, al momento de ser agrupada en las acciones que afectan a más de 1 objeto-cerilla.
(No importa que en el objeto caja de cerillas, 'cerilla' sea un adjetivo, porque para los fines del parseo, se considera como parte del nombre... cosa que encuentro que no debería ser tal.. pero bueno... así es).
Dice el DocumenATE!
Citar:
La pega del método anterior, es que la palabra "monedas" está marcada como //p en todo el juego, y no sólo en ese objeto. Imagina que tienes otro objeto que necesite la palabra "monedas" en su nombre, pero no como un plural (por ejemplo, un objeto llamado "maquina falsificadora de monedas").
Hay una forma más complicada de lograr el mismo efecto que con //p, pero sin afectar a otros objetos. Para ello debe usarse la rutina parse_nombre del objeto, de una forma especial. No sólo tiene que reconocer si lo que ha escrito el jugador se refiere a este objeto, sino que también debe decirle a la librería si el jugador ha usado una palabra que debe ser considerada un plural. Para hacer esto, la rutina parse_nombre funcionará como siempre, pero pondrá en la variable global accion_parser el valor ##HalladoPlural (que es otra "acción falsa").
Aquí:
http://www.caad.es/informate/docs/html/plurales.htmlUna solución para "vadear" este problema sería darle a la caja otro nombre. Caja de cerillas... "Caja de fósforos", por ejemplo (es lo primero que se me ocurre así a buenas y primeras). La idea es que la palabra 'cerillas' no esté ni en el nombre ni en los adjetivos (a las propiedades me refiero, claro).
Esa es una posible solución, para no llegar a tener que controlarlo con ajustes finos mediante "parse_name", supongo.

Saludos!
