CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 20 Nov 2019 14:17

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: 15 Dic 2011 23:06 
Desconectado
Aventurero
Aventurero

Registrado: 23 Nov 2011 21:59
Mensajes: 6
Hola a todos, y nuevamente aprovecho este post para dar las gracias por las respuestas al anterior, que me fueron muy útiles.
Ahora con lo nuevo.
Para ir practicando y dandole un tiempito al juego que estoy creando, decidi meterme en otro proyecto. Un poco de historia: Cuando no hacia mucho compre mi primer computadora, no se como llegó a mis manos un jueguito de lo mas simple en DOS con código Ascii, se llamaba Sleuth0, la idea era que uno, recorría una mansion con x cantidad de cuartos en la planta baja y x cuartos en la alta, había 5 sospechosos en varios cuartos e iban cambiando de ubicación a medida que uno hablaba con ellos, uno debía primero encontrar la lupa revisando toda la casa, luego revisar todos los objetos hasta encontrar el arma asesina, luego descubrir cual de todos los cuartos fue la escena del crimen, a partir de las coartadas de los sospechosos deducir quien era el asesino, y finalmente teniendo todos los elementos en nuestro poder, acusar al asesino.
Si lo jugaron verán, como yo, que está basado en el juego Clued.
Decidí hacer lo mismo pero programandolo con inform7 a forma de práctica de enseñanza, ya que con los problemas con los que me fui encontrando hicieron que aprendiera más que si simplemente lo hubiera leido como parte del conjunto.
Pero me encontré con un problema que me está costando bastante y me tiene frenada.
Mi investigador ya encontro el arma asesina, sabe quien es el asesino y cual es la escena del crimen, pero me está costando acusar a quien corresponde.
Una vez tengo todo en mi poder, el arma, un esquema de la escena del crimen y un papel en el que estan las distintas coartadas, me encuentro que no se como poner las tres opciones juntas, o sea,
si el jugador tiene el arma asesina que es... y el esquema de ... y el papel con el asesino... entonces se llega al arresto, si no es asi, entonces el asesino escapa.
Lo hago con If pero no compila los tres al mismo tiempo, no se donde fallo. Y lamentablemente no tengo el codigo aqui para pasarlo.
Si alguien puede darme alguna idea les agradezco... y disculpen la extensión del mensaje.

Gracias desde ya
Varyan


Arriba
 Perfil  
 
NotaPublicado: 16 Dic 2011 00:22 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Eh... no sé si entiendo el problema que dices, si lo que quieres hacer es comprobar que se cumple un conjunto de condiciones todo el tiempo puedes hacer algo como esto:

Código:
Every turn when the player carries the weapon and the player carries the scheme and the player carries the paper:
    end the game in victory.


Queda un poco feo, lo puedes decorar creando una condición que una todas esas juntas:

Código:
To decide if game is resolved:
   if the player is not carrying the weapon:
      no;
   if the player is not carrying the scheme:
      no;
   if the player is not carrying the paper:
      no;
   yes.

Every turn when game is resolved:
        end the game in victory.


Si las condiciones de victoria son siempre un conjunto de objetos que deben estar en posesión del jugador, puedes hacerlo con una lista:

Código:
Required things is a list of things that varies. Required things are {weapon,scheme,paper}.

To decide if game is resolved:
   repeat with item running through required things:
      if the item is not carried by the player:
         no;
   yes.

Every turn when game is resolved:
        end the game in victory.


No sé si es algo así, lo que quieres decir.


Arriba
 Perfil  
 
NotaPublicado: 16 Dic 2011 02:55 
Desconectado
Aventurero
Aventurero

Registrado: 23 Nov 2011 21:59
Mensajes: 6
Es algo asi como pusiste, voy a probar a ver si me viene bien.
La cosa es que cuando el jugador acusa, todos los sospechosos se reúnen en la misma habitación (tipo poirot cuando termina un caso) y el jugador dice, por ejemplo como en el Clue, el capitan Mustard lo mató con la pistola en la cocina.
Eso implica que hay tres variables, sospechoso (Capitan Mustard) que en mi juego hay 6. Arma asesina (Pistola) en mi juego hay muchos, pero no todos pueden cumplir ese rol; y escena del crimen (cocina) que en mi juego hay 10.
O sea que solo cuando se da esa combinación el juego termina bien, o sea se captura al asesino. Cualquier otra combinación, incluso cuando solo una opcion falla, se considera que el juego termina mal. O sea, se escapa el asesino.
También estoy pensando en otra opcion pero creo que es meterme en problemas, asique primero quiero resolver esto.
Voy a probar con las opciones que me diste y te cuento.
Espero esta vez haber sido mas clara. Y gracias :)

Varyan


Arriba
 Perfil  
 
NotaPublicado: 16 Dic 2011 14:11 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Varyan escribió:
Es algo asi como pusiste, voy a probar a ver si me viene bien.
La cosa es que cuando el jugador acusa, todos los sospechosos se reúnen en la misma habitación (tipo poirot cuando termina un caso) y el jugador dice, por ejemplo como en el Clue, el capitan Mustard lo mató con la pistola en la cocina.
Eso implica que hay tres variables, sospechoso (Capitan Mustard) que en mi juego hay 6. Arma asesina (Pistola) en mi juego hay muchos, pero no todos pueden cumplir ese rol; y escena del crimen (cocina) que en mi juego hay 10.
O sea que solo cuando se da esa combinación el juego termina bien, o sea se captura al asesino. Cualquier otra combinación, incluso cuando solo una opcion falla, se considera que el juego termina mal. O sea, se escapa el asesino.
También estoy pensando en otra opcion pero creo que es meterme en problemas, asique primero quiero resolver esto.
Voy a probar con las opciones que me diste y te cuento.
Espero esta vez haber sido mas clara. Y gracias :)

Varyan


Es que no me queda muy claro lo que quieres hacer... si una de las condiciones es el lugar tendrás que usar location y si otra es la presencia de un PJ, tendrás que verificar que está presente... o sea:

Código:
To decide if game is solved:
    if the real weapon is not carried by the player:
        no;
    if the location is not the real site:
        no;
    if the location of the real murderer is not the real site:
        no;
    yes.


Arriba
 Perfil  
 
NotaPublicado: 16 Dic 2011 21:23 
Desconectado
Yiepp
Yiepp

Registrado: 17 May 2011 16:16
Mensajes: 64
Johan Paz escribió:
Código:
Every turn when the player carries the weapon and the player carries the scheme and the player carries the paper:
    end the game in victory.


"End the game in victory" es una frase obsoleta en las nuevas versiones de Inform. Vos podés usarla si querés, pero no se la recomendaría a un usuario que recien empieza. Usen "end the story finally" para esto.

En el capítulo 9.4 de la documentación está explicado todo.

Varyan escribió:
Es algo asi como pusiste, voy a probar a ver si me viene bien.
La cosa es que cuando el jugador acusa, todos los sospechosos se reúnen en la misma habitación (tipo poirot cuando termina un caso) y el jugador dice, por ejemplo como en el Clue, el capitan Mustard lo mató con la pistola en la cocina.
Eso implica que hay tres variables, sospechoso (Capitan Mustard) que en mi juego hay 6. Arma asesina (Pistola) en mi juego hay muchos, pero no todos pueden cumplir ese rol; y escena del crimen (cocina) que en mi juego hay 10.
O sea que solo cuando se da esa combinación el juego termina bien, o sea se captura al asesino. Cualquier otra combinación, incluso cuando solo una opcion falla, se considera que el juego termina mal. O sea, se escapa el asesino.
También estoy pensando en otra opcion pero creo que es meterme en problemas, asique primero quiero resolver esto.
Voy a probar con las opciones que me diste y te cuento.
Espero esta vez haber sido mas clara. Y gracias :)

Varyan


Bueno, yo hice algo así:

Código:
Volume - Mecánicas

Book - Crimen

[Creamos una tabla para los elementos que participan en el crimen. Para un arma hay una escena del crimen y un asesino. Si ya sé, es una mierda; pero es lo que hay.]
Table of Elementos del crimen
Arma asesina   Escena del crimen   Asesino
a thing      a room            a person
with 1 blank row

[Llenamos una fila de la tabla con los elementos de un crimen. Al principio lo había hecho para que se llenase con elementos aleatorios; pero después cambié de parecer.]
When play begins (this is the establecer elementos del crimen rule):
   choose a blank row in Table of Elementos del crimen;
   now arma asesina entry is Pistola;
   now escena del crimen entry is Cocina;
   now asesino entry is a Capitan Mustard.

[Estas son las variables que guardan la elección del jugador.]
arma-elegida is a object that varies. arma-elegida is usually nothing.
escena-elegida is a object that varies. escena-elegida is usually nothing.
asesino-elegido is a object that varies. asesino-elegido is usually nothing.

Volume - Escenas

Book - Acusación

[Creamos una escena para la acusación, que empieza cuando todos están en el estudio.]
Acusación is a scene. Acusación begins when every person is in Estudio.

[Acá va el código para comprobar si el crimen ha sido resuelto o no.]
When Acusación begins:
   say "[El asesino-elegido] lo mató con [el arma-elegida] en [el escena-elegida].";
   if el crimen ha sido resuelto correctamente:
      end the story finally saying "Crimen resuelto.";
   otherwise:
      end the story saying "Crimen no resuelto, o algo así.".

[Y esta frase hace la comprobación.]
To decide whether el crimen ha sido resuelto correctamente:
   unless there is a arma asesina of arma-elegida in the Table of Elementos del crimen:
      no;
   unless the escena del crimen corresponding to a arma asesina of arma-elegida in the Table of Elementos del crimen is escena-elegida:
      no;
   unless the asesino corresponding to a arma asesina of arma-elegida in the Table of Elementos del crimen is asesino-elegido:
      no;
   yes.


Básicamente tenemos una tabla en la que cada fila define los elementos de un crimen, además tenemos tres variables que guardan el arma, la escena y el asesino escogido por el jugador/interlector/lo-que-sea. Luego tenemos una escena que comienza cuando todos los personajes están en el estudio, en ese momento dice "tal lo mató con tal cosa en tal lugar" y se hace la comprobación de si el crimen ha sido resuelto correctamente o no.

Qué sé yo.


Arriba
 Perfil  
 
NotaPublicado: 16 Dic 2011 22:24 
Desconectado
Aventurero
Aventurero

Registrado: 23 Nov 2011 21:59
Mensajes: 6
Matias Biato escribió:
Johan Paz escribió:
Código:
Every turn when the player carries the weapon and the player carries the scheme and the player carries the paper:
    end the game in victory.


"End the game in victory" es una frase obsoleta en las nuevas versiones de Inform. Vos podés usarla si querés, pero no se la recomendaría a un usuario que recien empieza. Usen "end the story finally" para esto.

En el capítulo 9.4 de la documentación está explicado todo.

Varyan escribió:
Es algo asi como pusiste, voy a probar a ver si me viene bien.
La cosa es que cuando el jugador acusa, todos los sospechosos se reúnen en la misma habitación (tipo poirot cuando termina un caso) y el jugador dice, por ejemplo como en el Clue, el capitan Mustard lo mató con la pistola en la cocina.
Eso implica que hay tres variables, sospechoso (Capitan Mustard) que en mi juego hay 6. Arma asesina (Pistola) en mi juego hay muchos, pero no todos pueden cumplir ese rol; y escena del crimen (cocina) que en mi juego hay 10.
O sea que solo cuando se da esa combinación el juego termina bien, o sea se captura al asesino. Cualquier otra combinación, incluso cuando solo una opcion falla, se considera que el juego termina mal. O sea, se escapa el asesino.
También estoy pensando en otra opcion pero creo que es meterme en problemas, asique primero quiero resolver esto.
Voy a probar con las opciones que me diste y te cuento.
Espero esta vez haber sido mas clara. Y gracias :)

Varyan


Bueno, yo hice algo así:

Código:
Volume - Mecánicas

Book - Crimen

[Creamos una tabla para los elementos que participan en el crimen. Para un arma hay una escena del crimen y un asesino. Si ya sé, es una mierda; pero es lo que hay.]
Table of Elementos del crimen
Arma asesina   Escena del crimen   Asesino
a thing      a room            a person
with 1 blank row

[Llenamos una fila de la tabla con los elementos de un crimen. Al principio lo había hecho para que se llenase con elementos aleatorios; pero después cambié de parecer.]
When play begins (this is the establecer elementos del crimen rule):
   choose a blank row in Table of Elementos del crimen;
   now arma asesina entry is Pistola;
   now escena del crimen entry is Cocina;
   now asesino entry is a Capitan Mustard.

[Estas son las variables que guardan la elección del jugador.]
arma-elegida is a object that varies. arma-elegida is usually nothing.
escena-elegida is a object that varies. escena-elegida is usually nothing.
asesino-elegido is a object that varies. asesino-elegido is usually nothing.

Volume - Escenas

Book - Acusación

[Creamos una escena para la acusación, que empieza cuando todos están en el estudio.]
Acusación is a scene. Acusación begins when every person is in Estudio.

[Acá va el código para comprobar si el crimen ha sido resuelto o no.]
When Acusación begins:
   say "[El asesino-elegido] lo mató con [el arma-elegida] en [el escena-elegida].";
   if el crimen ha sido resuelto correctamente:
      end the story finally saying "Crimen resuelto.";
   otherwise:
      end the story saying "Crimen no resuelto, o algo así.".

[Y esta frase hace la comprobación.]
To decide whether el crimen ha sido resuelto correctamente:
   unless there is a arma asesina of arma-elegida in the Table of Elementos del crimen:
      no;
   unless the escena del crimen corresponding to a arma asesina of arma-elegida in the Table of Elementos del crimen is escena-elegida:
      no;
   unless the asesino corresponding to a arma asesina of arma-elegida in the Table of Elementos del crimen is asesino-elegido:
      no;
   yes.


Básicamente tenemos una tabla en la que cada fila define los elementos de un crimen, además tenemos tres variables que guardan el arma, la escena y el asesino escogido por el jugador/interlector/lo-que-sea. Luego tenemos una escena que comienza cuando todos los personajes están en el estudio, en ese momento dice "tal lo mató con tal cosa en tal lugar" y se hace la comprobación de si el crimen ha sido resuelto correctamente o no.

Qué sé yo.


Justamente esa es la cuestion, la acusación debe llevarse a cabo cuando los sospechosos y el investigador están en el cuarto donde se cometió el crimen, y al acusar el investigador dice asesino elegido, arma elegida y cuarto elegido. Si todo coincide con el resultado correcto, pues lo conseguiste, en caso contrario nop. Voy a probarlo y les cuento, nuevamente gracias.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 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 4 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