CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 19 Ago 2017 12:24

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: 17 Sep 2015 01:11 
Desconectado
Dragón
Dragón
Avatar de Usuario

Registrado: 13 Sep 2015 18:42
Mensajes: 114
Hola a todos!

Hoy he empezado con Inform 7. Concretamente utilizo la build 6L38 y estoy siguiendo este tutorial: https://sites.google.com/site/inform7sp/inform-7/1-empezando-en-inform

Por lo que he ido deduciendo y una charla en #caad he entendido que el tutorial está algo desactualizado pero bueno, por el momento el hecho de ir resolviendo por mi cuenta los problemas lejos de desengancharme me resulta bastante motivante, así que está yendo bien :-)

Mi primer atasco fue debido a lo referente a los géneros en i7. El tutorial proponía un código tal que así:

Citar:
Some palmeras are in the Playa. They are female and scenery. The description is "La playa está repleta de palmeras, que se inclinan hacia el mar a causa del viento.".
Instead of taking the palmeras, say "¡No puedes cargar con todas las palmeras de la playa! Si quieres madera, vete al bosque.".


Al compilar esto me saltó un error, gracias al que descubrí que puedo sustituir el "female" y el "Some palmeras" por "Las palmeras" y automáticamente reconoce el género.

Hasta aquí bien, el problema viene más tarde, cuando me encuentro con esto:

Citar:
Some piedras are in the Montana. They are female and scenery. The description is "Puedes ver numerosas piedras por aquí y por allá.". Understand "piedra" as the piedras.
The piedra is female. The description is "Una piedra con la que podrías hacer mucho daño.".
Instead of taking the piedras:
move the piedra to player;
say "Coges una piedra.".


Para el "Some piedras" era fácil, he repetido la misma operación y arreglado, pero cuando llego a "The piedra" no sabía como plantearlo. Tras trastear un poco y buscar por aquí y por allá se me ocurrió la siguiente solución:

Citar:
Las piedras are in la Montana. They are scenery. The description is "Puedes ver numerosas piedras por aquí y por allá.". Understand "piedra" as las piedras.
Una piedra is an object. The description is "Una piedra con la que podrías hacer mucho daño.".
Instead of taking the piedras:
move the piedra to player;
say "Coges una piedra.".


Y he aquí mis dudas, en primer lugar no estoy muy seguro de que mi solución, aunque funcional, sea la más idónea ya que desconozco aún mucho el lenguaje.

Por otro lado, no se a que se debe, pero cuando arranco el compilador y llego a este punto, si tecleo "coger piedra" la primera vez la coge, pero la segunda me pone "ya tiene la piedra". Sin embargo, si tecleo "coger piedras" puedo hacerlo infinitamente, aunque solo me aparece una piedra en el inventario.

Disculpadme si me he extendido mucho con el mensaje, como os digo soy novato con Inform y a veces no se si me estoy explicando bien. Muchas gracias de antemano :-)


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2015 12:04 
Desconectado
Dragón
Dragón
Avatar de Usuario

Registrado: 13 Sep 2015 18:42
Mensajes: 114
Dándole unas vueltas, y con la ayuda de dddddd he conseguido solucionar el problema, de esta manera:

Código:
La piedra is an object. The description is "Una piedra con la que podrías hacer mucho daño.".
Instead of taking the piedras when player have la piedra:
   say "Ya tienes una piedra".
Instead of taking the piedras:
   move la piedra to player;
   say "Coges la piedra"


No obstante, lo dejo por aquí por si alguien me quiere comentar algo y recomendarme alguna forma que pueda ser mejor. Aunque funciona, las respuestas del intérprete no terminan de convencerme:

Citar:
>coger piedra
Coges la piedra
>coger piedra
( la piedra)
Ya tiene la piedra.

>coger piedras
Ya tienes una piedra
>


Gracias de nuevo :-)


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2015 13:00 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 877
En El Anillo 3 tengo casi lo mismo, pero lo resuelvo como se puede ver en estos puntos:

https://dl.dropboxusercontent.com/u/302 ... ce_75.html
https://dl.dropboxusercontent.com/u/302 ... e_122.html

Siendo la piedra individual una 'parte' del montón de piedras.


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2015 13:07 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 877
Una solución mucho más molona en Inform 7 (y más realista) es si quieres una cantidad finita de piedras entonces basta con algo como lo de este ejemplo:

Código:
Una moneda is a kind of thing.
55 monedas are here. 3 monedas are carried by the player.


Y ya Inform 7 se encarga de permitirte jugar con las monedas:

Código:
>> coge una moneda
>> deja dos monedas
...


Lo mismo con tus piedras.


Arriba
 Perfil  
 
NotaPublicado: 17 Sep 2015 17:59 
Desconectado
Dragón
Dragón
Avatar de Usuario

Registrado: 13 Sep 2015 18:42
Mensajes: 114
Muchas gracias Johan! Estoy mirando el código que me has pasado. Hay partes que no termino de entender, te cuento:

Código:
Before taking piedra when piedra is part of monton piedras:
now piedra is in location.


Corrígeme si me equivoco: entiendo que aquí, una vez creada la piedra, la sitúas en la localización siempre que sea parte del "monton de piedras". Por así decirlo, ¿le das una posición inicial?

Código:
After examining monton piedras for the first time:
say "Entre las piedras encuentras el último resto de la actividad de los leñadores aquí, un [j]leño[x] alargado y seco.";
move leno seco to Pantano16.
Instead of taking monton piedras:
say "El portador no puede llevar toneladas de piedras inútiles, aunque probablemente intentarlo sería motivo para reírse un buen rato.";
if piedra is part of monton piedras:
bnw;
say "Tal vez una de ellas...";
move piedra to Pantano16.
Instead of searching monton piedras:
try examining the noun.


En esta parte me pierdo un montón. Pero creo que por aquí van los tiros de lo que quiero hacer. Vamos a ver:

- En primer lugar, entiendo que después de examinar la primera vez el montón de piedras mueves un objeto a la localizacion
- Si se intenta coger "monton de piedras" lanzamos un mensaje de negativa
- Si la piedra es parte del monton... no se que es "bnw" y luego ponemos la piedra ahí
- Si buscamos en el monton... ¿prueba a examinar el nombre?

Gracias de nuevo por la ayuda y perdona por responderte tan tarde. Precisamente estaba jugando "El Anillo III" :-)


Arriba
 Perfil  
 
NotaPublicado: 23 Sep 2015 21:08 
Desconectado
Dragón
Dragón
Avatar de Usuario

Registrado: 13 Sep 2015 18:42
Mensajes: 114
Al final, he resuelto todo el "tema piedra/piedras" de la siguiente manera:

Código:
Montana is north of Bosque. The printed name of Montana is "Montaña". The description is "Te encuentras en una alta montaña con multitud de piedras. Desde aquí se divisa un bosque y una playa, allá a lo lejos.".
Las piedras are in la Montana. They are scenery. The description is "Puedes ver numerosas piedras por aquí y por allá.".
Una piedra is a thing. The description is "Una piedra con la que podrías hacer mucho daño.". Piedra is part of piedras.
Instead of taking piedras:
   say "Quizás solo una...".
Before taking piedra when piedra is part of piedras:
   now piedra is in location.
Instead of taking piedras when player have piedra:
   say "Ya tienes una piedra.".
Instead of taking piedra when player have piedra:
   say "Ya tienes una piedra.".


No se si es un poco rebuscado, pero funciona exactamente como buscaba que lo hiciese. Solo queda un pequeño detalle, que si bien no es algo molesto por curiosidad me gustaría entender como arreglarlo.

Actualmente tal cual tengo el código, cuando el jugador llega a la montaña si teclea "mirar piedra" le sale la descripción de la piedra. Supongo que esto sea porque "Piedra is part of piedras" e imagino que haya que ponerla oculta o algo así, pero desconozco la manera de hacer esto.

De momento voy a seguir avanzando, pero dejo por aquí esta dudilla a ver si me podéis ayudar alguno y lo reviso posteriormente.


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 1 invitado


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