CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 20 Nov 2018 23:27

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 18 mensajes ]  Ir a página Anterior  1, 2
Autor Mensaje
NotaPublicado: 30 May 2011 18:51 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
El ejemplo que te puse antes con "unir" era de la acción, no del verbo. Y ya viste que la manera de definirla no es para nada "estable". Depende un montón del contexto. No sé qué te hace pensar que las acciones son estables.


Es que no nos entendemos...
Si yo defino una acción por la cual dos objetos quedan unidos y se mueven a la par, habrá ocasiones en la que la acción será posible y otras en las que no.
No se puede unir una cuerda con una canica, por medio del verbo atar, pero se puede unir por medio del verbo "pegar" si se usa un adhesivo, y eso desembocará en un cambio de comportamiento de ambos objetos, la cuerda y la canica. Eso es lo que quiero cambiar, la descripción será ya cosa del programador, pero los objetos responderán de un modo lógico, cuando alguien añada uno a su inventario, el otro le seguirá y si lo llevas a otra localidad ambos irán a la par y así será mientras esa unión no se rompa.

Tengo 3 problemas que me gustaría resolver por completo, los soportes, los contenedores y los objetos "unidos".
Ya creé mi propio "mi_sacar", porque no me convencía el comportamiento por defecto de esa acción.
También tengo un "mi_empujar", con el que puedo mover un objeto de una localidad a otra sin tener que llevarlo en el inventario.
Y ahora quiero intenta un "mi_unir" para que nadie se tenga que romper la cabeza cada vez que quiera conseguir que dos objetos unidos se comporten como tales.
Si lo puedo conseguir metiendo uno dentro de otro, o currándome un método que los haga moverse de ese modo, o cambiándolos por un nuevo objeto... eso es lo que tengo que pensar. :roll:

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 30 May 2011 20:27 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5304
Ubicación: Coruña
Si sí que te entiendo, lo que pasa es que con lo que dices sólo resuelves una pequeña parte del problema de unir dos objetos, que abarca:

1. Decidir cuándo un verbo significa la acción unir,
2. Decidir qué objetos se pueden unir y cuáles no,
3. Hacer que los objetos estén unidos (que se muevan juntos),
4. Decidir cómo se muestra/describe la unión,
5. Decidir cómo actúa la unión en comportamientos por defecto,
6. Decidir los puzzles que se implementarán con la unión.

Los puntos 1 y 2 los estás descartando porque no conciernen a la acción sino al verbo y al código que decide si se ejecuta la acción, OK. Pero aun así, lo que dices es sólo para resolver el punto 3, que sigue siendo sólo una parte del problema. Si dices (te cito) que quieres que "nadie se tenga que romper la cabeza cada vez que quiera conseguir que dos objetos unidos se comporten como tales", tendrás que enfocar también los problemas 4 y 5, ¿no? Si proporcionas una manera estándar de hacer una unión pero luego se comporta de una manera determinada y el creador de aventuras quiere otra, va a tener que romperse la cabeza igual.

En todo caso, te sugiero una manera que te puede venir bien de hacer esto.

Si quieres que unir la entidad café con la entidad leche dé café con leche, pon una relación "seUneParaDar" que vaya de café a leche, y de leche a café, y cuyo valor sea la cadena "café con leche". Debe existir una entidad "café con leche" que será la que represente la unión de los dos objetos, en caso de que se produzca, y que inicialmente estará en el limbo.

Cuando se ejecute una acción unir, mira si los dos objetos que se quieren unir están relacionados mediante la relación "seUneParaDar". Si no lo están, da un mensaje de que no se pueden unir. Si sí lo están, entonces se quitan los dos objetos de donde estén y se pone en su lugar el objeto almacenado en la relación (en este caso el café con leche).

No es una solución universal, porque no contempla por ejemplo distinguir entre objetos indivisibles o que se puedan separar, o cómo se configuran los mensajes de error se dan para objetos que no se pueden unir sin que sea complejo ni quede un mensaje genérico encorsetante, etc... pero igual te gusta, es lo mejor que se me ocurre.

_________________
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  
 
NotaPublicado: 30 May 2011 20:31 
Desconectado
Archivero
Archivero
Avatar de Usuario

Registrado: 21 Abr 2011 17:46
Mensajes: 278
Buena idea, Al-K. Sirve en general para muchas cosas, aparte de para este caso.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 18 mensajes ]  Ir a página Anterior  1, 2

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 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