CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 08 Ago 2020 05:03

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
 Asunto: tomar todo
NotaPublicado: 16 Ene 2007 17:04 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 15 Ene 2005 22:26
Mensajes: 780
Hola!
Jugando con un sistema de interfaz basado en simbolos, quisiera que el parser entienda el comando

>//

como 'tomar todo'

pero no me sale,

He podido hacer (facilmente) que entienda
>/ espada

como 'tomar espada' sin problemas, pero no puedo disparar desde el codigo la accion Tomar con el token multi

Ayuda?

_________________
INFSP7 - Canal de Noticias INFSP

Porque donde está tu tesoro, allí también estará tu corazón.


Arriba
 Perfil  
 
 Asunto: Re: tomar todo
NotaPublicado: 16 Ene 2007 17:45 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Sarganar escribió:
Hola!
Jugando con un sistema de interfaz basado en simbolos, quisiera que el parser entienda el comando

>//

como 'tomar todo'

pero no me sale,

He podido hacer (facilmente) que entienda
>/ espada

como 'tomar espada' sin problemas, pero no puedo disparar desde el codigo la accion Tomar con el token multi

Ayuda?


EDITADO:
he borrado lo que escribí proque creo que es justamente lo qeu trataste de hacer y no funcionaba.

Otra solución podría ser COGER TODO a mano, con un objectloop y probando objetos al alcance.

objectloop (PruebadeAlcance(n))...
(no recuerdo muy bien ahora cómo funcionaba lo del alcance)

o con...
Código:
verb '//'
* ->tomartodo;

[tomartodosub n i;
objectloop (n in parent(jugador))if(n hasnt escenario){i++;print "tomas el ", (el)n,".^";move n to jugador;}
if(i==0)"No hay nada que tomar.";
rtrue;
];


Aunque seguramente '//' sea interpretado como un caracter nulo, habría que introducirlo de otra forma...

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto: Re: tomar todo
NotaPublicado: 16 Ene 2007 19:15 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 15 Ene 2005 22:26
Mensajes: 780
jarel escribió:
Aunque seguramente '//' sea interpretado como un caracter nulo, habría que introducirlo de otra forma...


gracias por la ayuda. Efectivamente // no funciona, uso '\\' pero la dislexia me traicionó.

Tu codigo funciona bastate bien.
Yo lo habia enfocado desde otro lado,
usando * scope= TakeAll -> Take; en la linea de gramatica y luego trabajando ese TakeAll para añadir en el Scope todos los objetos de las cercanias. Pero por alguna razon no me funciono.

Esto es parte de una idea de Roberto Grassi de manejar una especie de interfaz 'universal' al interactuar con el parser (inform o el que sea).

Asi, + objeto es 'examinar objeto'
* objeto es 'usar objeto'
/ es inventario (originalmente es / pero en inform no se puede, creo, yo uso '\')
y asi por el estilo.

Pueden ver un borrador en rakonto

La idea es lograr cierta simplificacion en la interaccion con el parser y una indepencia del lenguaje (espanol, aleman, etc). Como todo, tiene sus partidarios y detractores.

El codigo que adapté a partir del tuyo jarel, trata de no poner cadenas de textos, sino que traslada el problema al parser y sus modulos de idioma.

Código:
[TakeAllsub n i;
objectloop (n in parent(player))
    if(n hasnt scenery && n~=player){
    i++;print (name) n,": ";
    <Take n>;
}
if(i==0) L__M(##Miscellany, 44);!"No hay nada que tomar."
rtrue;
];


Verb '\\'
    *                                   ->TakeAll;
VerboIrregular "tomar" with imperativo '\\';


al menos funciona, nuevamente gracias!

En breve, hago publico la extension completa.

_________________
INFSP7 - Canal de Noticias INFSP

Porque donde está tu tesoro, allí también estará tu corazón.


Última edición por sarganar el 27 Ene 2007 16:38, editado 1 vez en total

Arriba
 Perfil  
 
 Asunto: Re: tomar todo
NotaPublicado: 16 Ene 2007 21:15 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
No me gusta la idea. Para mí, la gracia de las aventuras de texto reside en gran medida en que la entrada sea lenguaje natural. Si deja de ser lenguaje natural, ya no es una aventura de texto, es otra cosa.

Además, tampoco me gusta el tema de utilizar un verbo tan genérico como "usar" en las aventuras. Eso limita mucho la profundidad del juego, lo hace más plano y más fácil. Para eso ya están juegos tipo Monkey y demás, que son buenos en su género pero proporcionan una experiencia distinta a la de una aventura de texto.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
 Asunto: Re: tomar todo
NotaPublicado: 16 Ene 2007 22:11 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 17:20
Mensajes: 504
Sarganar escribió:
gracias por la ayuda. Efectivamente // no funciona, uso '\\' pero la dislexia me traicionó.
(...)
/ es inventario (originalmente es / pero en inform no se puede, creo, yo uso '\')
(...)
La idea es lograr cierta simplificacion en la interaccion con el parser y una indepencia del lenguaje (espanol, aleman, etc). Como todo, tiene sus partidarios y detractores.


Como estoy entre los "detractores" (el motivo sería tema para otro hilo, aunque vengo a pensar lo mismo que Al-K) no debería decirte esto, :twisted: :twisted: :twisted: pero...

No tienes necesariamente que apartarte del modelo original y renunciar al "//", un simple apaño del tipo:

Código:
Verb '@{2F}@{2F}'
*   ->   TakeAll;


...da perfectamente el pego y funciona tanto en Z como en Glulx :o .


Arriba
 Perfil  
 
 Asunto: Re: tomar todo
NotaPublicado: 16 Ene 2007 23:37 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
El sistema puede ser interesante, siempre que el lenguaje de símbolos se introduzca como añadido al del idioma de la aventura, no sustituyéndolo. Pero por otro lado, haría falta un vocabulario simbólico bastante extenso para no reducir la interactividad a unas pocas acciones genéricas.

Por cierto, me llama la atención esto:
Código:
[TakeAllsub n i;
objectloop (n in parent(player))
    if(n hasnt scenery && n~=player){
...
 

¿En qué casos el player podría estar afuera de él mismo?...por lo de n~=player.

Quizá habría que poner también && n~=animado para que no incorpore al inventario a otros personajes.

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto: Re: tomar todo
NotaPublicado: 17 Ene 2007 15:27 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 15 Ene 2005 22:26
Mensajes: 780
jarel escribió:
Por cierto, me llama la atención esto:
Código:
[TakeAllsub n i;
objectloop (n in parent(player))
    if(n hasnt scenery && n~=player){
...
 

¿En qué casos el player podría estar afuera de él mismo?...por lo de n~=player.

Quizá habría que poner también && n~=animado para que no incorpore al inventario a otros personajes.


La (mia) idea es esa (como extension a la de Alle): es un añadido para usuarios con gusto por la interactividad acotada (yo soy uno). Por lo que en realidad busco un equivalente a 'coger todo' .

el objectloop (n in parent(player)) tambien asigna a n el player, por lo que la accion seria 'Take Player' a lo que inform responde
'Siempre te tienes a ti mismo'. 'Coger todo' no hace eso. Aunque si intenta tomar a 'animados'. Haz la prueba.
La idea es un equivalente. Por ahora.

Radio Marte Libre escribió:
No tienes necesariamente que apartarte del modelo original y renunciar al "//", un simple apaño del tipo:

Código:
Verb '@{2F}@{2F}'
*   ->   TakeAll;


...da perfectamente el pego y funciona tanto en Z como en Glulx :o .


Me saco el sombrero. Lo he probado y funciona a la pefeccion. cuanto me falta aprender... :_(

Gracias!!
Aunque el '\' me gusta mas, por la posicion que tiene en mi teclado US.

_________________
INFSP7 - Canal de Noticias INFSP

Porque donde está tu tesoro, allí también estará tu corazón.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 7 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM