CAAD
http://foro.caad.es/

[fi.js] Comando bajar
http://foro.caad.es/viewtopic.php?f=18&t=5682
Página 1 de 1

Autor:  edlobez [ 16 Sep 2014 21:34 ]
Asunto:  [fi.js] Comando bajar

Buenas,

Tengo dos localidades que están una encima de otra. locA (localidad inferior), locB (localidad superior). Están conectadas de la siguiente forma:

Código:
locB.ponSalidaBi( "abajo", locA);


Si estoy en la localidad locA, para ir a la localidad locB, me funciona los comandos "arriba y subir". Sin embargo si estoy en la localidad locB, para ir la localidad locA, sólo me funciona "abajo", no me funciona "bajar".

¿Cómo hago para que estando en la localidad locA, me funcione también el comando "bajar"?

Autor:  baltasarq [ 17 Sep 2014 10:13 ]
Asunto:  Re: [fi.js] Comando bajar

Hola,

Mmmm... ya habías tenido ese problema anteriormente con "subir", y lo había corregido tanto para "subir" como para "bajar".

subir y bajar, introducidos "a secas", son convertidos en "arriba" y "abajo".

Bájate esta versión, la última, y me dices si sigues teniendo ese problema.

https://github.com/Baltasarq/fi-js/blob/master/fi.js
https://github.com/Baltasarq/fi-js/blob/master/verbs.js

Esto que comentas que no te funciona está en la línea 1303 de verbs.js:

Código:
var descendAction = actions.crea( "descend",
    [ "bajar", "baja", "bajo", "destrepar", "destrepa", "destrepo",
      "descender", "desciende", "desciendo" ]
);

descendAction.transInput = function(s) {
    var loc = ctrl.places.getCurrentLoc();

    // Baja => ir abajo
    if ( this.match( s )
      && s.term1 === null )
    {
        s.verb = actions.getAction( "go" ).verbs[ 0 ];
        s.term1 = loc.compas[ 5 ];
    }

    return "";
}


Aunque es posible que sea un bug, claro. Prueba con estas versiones actualizadas, y me cuentas.

Autor:  Uto [ 17 Sep 2014 10:15 ]
Asunto:  Re: [fi.js] Comando bajar

Por lo que veo en verbs.js hay una implementación expresa que hace que la accion "climb" se convierta en la accion "go" (en climbAction.transInput). Es decir, el verbo "subir" responde a la accion "climb" (subirse a), pero si no hay nombre en la frase el parser lo convierte a la accion "go" con el parámetro "arriba" (ir arriba).

Esto no se repite para el verbo bajar, porque no hay una accion de "meterse debajo" que pueda cambiarse por "ir abajo" si no hay respuesta. Supongo que es algo a lo que Baltasar debería dar soporte en fi.js.

Por ahora, quizá te funcione haciendo una trampa: en fi.js busca esta linea:

Código:
this.brevCompas = [ "n", "s", "e", "o", "ar", "ab" ];


y cambiala por esta:

Código:
this.brevCompas = [ "n", "s", "e", "o", "ar", "bajar" ];


La idea es que en lugar de usar la abreviatura "ab" para "abajo" la abreviatura sea "bajar". No lo he probado pero como ñapa temporal puede funcionar.

Edito: Baltasar se me ha adelantado por unos segundos, y además no se que he hecho yo que me he bajado los fuentes de guthub pero he acabado revisando unos viejos, porque la acccion descender está efectivamente ahí XD

Autor:  edlobez [ 17 Sep 2014 10:40 ]
Asunto:  Re: [fi.js] Comando bajar

Gracias por las respuestas!

Con la nueva versión va perfecto.

:P

Autor:  baltasarq [ 17 Sep 2014 11:12 ]
Asunto:  Re: [fi.js] Comando bajar

Hola,

edblopez escribió:
Con la nueva versión va perfecto. :-D


Me alegro mucho.

Uto escribió:
(...)
y cambiala por esta:
Código:
this.brevCompas = [ "n", "s", "e", "o", "ar", "bajar" ];

La idea es que en lugar de usar la abreviatura "ab" para "abajo" la abreviatura sea "bajar". No lo he probado pero como ñapa temporal puede funcionar.


JUAS... pues vaya ñapa, sí... :-P
http://fi-js.wikidot.com/loc

En cualquier caso, gracias por ayudar.
No es que no pueda funcionar, pero ese vector no está hecho para eso. La idea es que para unas localidades determinadas puedas cambiar los nombres de las direcciones (como se ve en el ejemplo), pero no su significado. El hecho de que en el compás breve estén ar y ab es porque no se me ocurrió ninguna abreviatura para arriba y abajo.

Sí es significativo que fi.js solamente soporta seis direcciones, y no diez. Es decir, no hay soporte para noreste, noroeste, sureste, suroeste.
La verdad es que nunca me pareció necesario.

Autor:  Al-Khwarizmi [ 17 Sep 2014 12:00 ]
Asunto:  Re: [fi.js] Comando bajar

baltasarq escribió:
Sí es significativo que fi.js solamente soporta seis direcciones, y no diez. Es decir, no hay soporte para noreste, noroeste, sureste, suroeste.
La verdad es que nunca me pareció necesario.

AGE tiene soporte explícito para diez direcciones, y en retrospectiva creo que es totalmente innecesario y sólo valió para complicar el código. Lo mejor es no soportar ninguna. Que se las cree el usuario, suponiendo que quiera usar puntos cardinales, cosa que en muchas aventuras es de por sí cuestionable.

Autor:  Uto [ 17 Sep 2014 13:12 ]
Asunto:  Re: [fi.js] Comando bajar

baltasarq escribió:
JUAS... pues vaya ñapa, sí... :-P
http://fi-js.wikidot.com/loc
Citar:

O sea, que la forma limpia de ñapear eso sería

Citar:
locA.brevCompas = [ "a", "s", "d", "i", "ar", "bajar" ];


Así seguiría siendo una ñapa, pero de nivel medio en lugar de la madre de todas las ñapas XDD


Citar:
Sí es significativo que fi.js solamente soporta seis direcciones, y no diez. Es decir, no hay soporte para noreste, noroeste, sureste, suroeste.
La verdad es que nunca me pareció necesario.

También te faltan entrar y salir, pero vamos, que sí, que son esas cosas que nos comemos la cabeza con ponerlo en todos los parsers pero tampoco es una necesidad terrible :-)

Supeglús y ngPAWS tienen 12, que pueden crecer hasta 20 (como en PAW), y son redefinibles, pero seguro que nadie ha usado los puntos cardinales intermedios en años.

Autor:  Al-Khwarizmi [ 17 Sep 2014 14:47 ]
Asunto:  Re: [fi.js] Comando bajar

Es cierto, son 12 en AGE también. Me había olvidado de dentro y fuera.

Autor:  baltasarq [ 17 Sep 2014 16:54 ]
Asunto:  Re: [fi.js] Comando bajar

Hola,

Uto escribió:
También te faltan entrar y salir, pero vamos, que sí, que son esas cosas que nos comemos la cabeza con ponerlo en todos los parsers pero tampoco es una necesidad terrible :-)


Entrar y salir son acciones, no direcciones. Si pones entrar o salir a secas, actúan sobre la localidad actual. Si pones algo más, como "entrar en la cueva", actúan sobre el objeto directo ("la cueva"), que tiene que existir, claro.

Autor:  Uto [ 17 Sep 2014 17:33 ]
Asunto:  Re: [fi.js] Comando bajar

baltasarq escribió:
Hola,

Uto escribió:
También te faltan entrar y salir, pero vamos, que sí, que son esas cosas que nos comemos la cabeza con ponerlo en todos los parsers pero tampoco es una necesidad terrible :-)


Entrar y salir son acciones, no direcciones. Si pones entrar o salir a secas, actúan sobre la localidad actual. Si pones algo más, como "entrar en la cueva", actúan sobre el objeto directo ("la cueva"), que tiene que existir, claro.


Si lo prefieres digo que te faltan también dentro y fuera :lol:

Aunque insisto en que no son imprescindibles.

Autor:  baltasarq [ 18 Sep 2014 09:19 ]
Asunto:  Re: [fi.js] Comando bajar

Hola,

Uto escribió:
Si lo prefieres digo que te faltan también dentro y fuera :lol:


Eso lo he solucionado poniendo "dentro" como sinónimo de entrar, y "fuera" como sinónimo de salir.
(Todavía no está subido a GitHub, ¿eh?)

Página 1 de 1 Todos los horarios son UTC + 1 hora
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/