CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 16 Jul 2019 01:53

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: 10 Ene 2009 18:26 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 890
Hola

Al definir un objeto podemos dar varios nombres para que el jugador se refiera a ellos como si fueran sinónimos. ¿ Cómo puedo utilizar el nombre por el que el jugador se ha referido al objeto en un mensaje ?

Muchas gracias.

_________________
---
KMBR! http://www.aliensuavito.com @lecambre


Arriba
 Perfil  
 
NotaPublicado: 10 Ene 2009 20:00 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
saimazoom escribió:
Hola

Al definir un objeto podemos dar varios nombres para que el jugador se refiera a ellos como si fueran sinónimos. ¿ Cómo puedo utilizar el nombre por el que el jugador se ha referido al objeto en un mensaje ?

Muchas gracias.


En Dios en zapatillas (versión inform), el jugador le otorgaba un nombre a uno de los objetos del juego, que luego era utilizado para referirse a dicho objeto.
No es lo mismo exactamente, así que no sé si podría servirte, pero si quieres te paso los fuentes.

Un saludo
Jenesis


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 10 Ene 2009 21:45 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
No sé exactamente en qué propiedad debe programarse esto... (parsename?). En fin, lo que tienes que hacer básicamente es comparar la palabra de nombre que ha escrito el jugador con las palabras en la propiedad "name" del objeto en cuestión.

Para estas tareas puedes usar la rutina de Inform "WordInProperty()" a la que le pasas la palabra y el objeto en donde se debe buscar esa palabra. (Mira el manual de Inform para más detalles). Y para obtener cada palabra parseada de lo que escribió el jugador puedes usar NextWord() o algo así creo que se llamaba. Si obtienes un match, entonces ya sabes que ésa es la palabra que el jugador usó y puedes guardarla en alguna referencia para luego poder imprimirla. No olvides que si quieres imprimirla debes hacerlo con la rutina de impresion (address), porque todas las palabras de nombre de los objetos y las propias palabras reconocidas por el parsing son palabras de diccionario.

Saludos! :)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 11 Ene 2009 14:55 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 890
Hola

Muchas gracias es justo lo que necesitaba. ¿ Y cómo podría sacar el género de la palabra ?

Un saludo.
Eliuk Blau escribió:
No sé exactamente en qué propiedad debe programarse esto... (parsename?). En fin, lo que tienes que hacer básicamente es comparar la palabra de nombre que ha escrito el jugador con las palabras en la propiedad "name" del objeto en cuestión.

Para estas tareas puedes usar la rutina de Inform "WordInProperty()" a la que le pasas la palabra y el objeto en donde se debe buscar esa palabra. (Mira el manual de Inform para más detalles). Y para obtener cada palabra parseada de lo que escribió el jugador puedes usar NextWord() o algo así creo que se llamaba. Si obtienes un match, entonces ya sabes que ésa es la palabra que el jugador usó y puedes guardarla en alguna referencia para luego poder imprimirla. No olvides que si quieres imprimirla debes hacerlo con la rutina de impresion (address), porque todas las palabras de nombre de los objetos y las propias palabras reconocidas por el parsing son palabras de diccionario.

Saludos! :)

_________________
---
KMBR! http://www.aliensuavito.com @lecambre


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 11 Ene 2009 16:32 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
saimazoom escribió:
Hola

Muchas gracias es justo lo que necesitaba. ¿ Y cómo podría sacar el género de la palabra ?


Entonces deberías dividir los nombres sinónimos en distintas propiedades según name_m, name_f, name_mp, name_fp. Con eso, deberías buscar la palabra en cada una de esas propiedades, recordando en qué propiedad estás buscando. Cuando tengas un match, quere decír que la palabra tiene "ese" genero (masculino, femenino, masculino plural, femenino plural).

Este truquito se me ocurre de momento, porque según tengo entendido el sistema implementado en español para entender varios generos lo que hace es "cambiar" los atributos de genero de los objetos "al vuelo". Los cambia durante el parsing según lo necesite, y según entiendo, durante este paso no existe forma que puedas acceder a esos datos.

Creo que el truquito que te puse es más sencilllo de codificar y sirve para tus efectos. Lamento no poner código. Si me hago un tiempo voy y codifico un ejemplo para ti.

Saludos! :)

P.S: Ten en cuenta que lo que intentas hacer puede ocasionar que tus textos fallen por todos lados. Por ejemplo, ¿qué pasaría si en una localidad tiene dos objetos, a la: "pelota roja" "pelota verde"? Hay una match entre "pelota"... ¿cómo resolvería el parser la ambiguedad? Entiendo que tú deberías encargarte de esto, porque el parsing ya no lo está haciendo el parser, que sí trae mucho código complejo para resolver estos casos. Otro: ¿qué pasaría si pones un objeto con nombres "anteojos, gafas, negros , negras"? Deberías separar cada sinonimo por genero, pero ¿y si el jugador pone "gafas" en vez de "anteojos"? Debes asegurarte que al imprimir el adjetivo calificativo "negros/as" se imprima también con el genero y número correctos. Esto se evita en InformATE/INFSP6 de una manera muy simple, que es: con independencia del nombre que el jugador haya usado para referirse al objeto, el parser siempre usará el nombre, genero y número por defecto establecido para el objeto al imprimir cualquier mensaje. Este comportamiento, por supuesto, no te sirve a ti. Cuida todas estas cosas. :)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 5 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:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM