Con Rumbo
(C) 2000, 2001 El Presi (Enrique D. Bosch)
Puede distribuirse libremente bajo licencia GNU GPL


Primero que nada, no intenteis buscar una salida porque no la hay... :))

Corregido el bug del NorOeste, gracias a Akbarr y a Lumpi.
Corregido tamben el bug de los femeninos, ahora si que aparecen.
Implemetados los muros. [revisin 3]

Pseudocreacin (nombrado y descripcin) de los objetos de la localidad en 
tiempo de ejecucin. [revisin 4]

Generacin de la descripcin de objeto al entrar en localidad de modo que las
descripciones de objetos no varan, permanecen. [revisin 5]

Esto es la segunda parte de "Sin Rumbo", una nanoaventura que qued la peor
del primer concurso de nanos. En "Con Rumbo" realmente se da la sensacin de
que hay un montn de localidades distintas (32x32x32, 32768 en total) ya que
las localidades se van generando pseudoaleatoriamente en tiempo de ejecucin
gracias al motor GLL (Generador de Locas Localidades), pero desde el punto
de vista del programador solo existe un localidad que a cada llamada de
su descripcin consulta un diccionario de palabras para construir frases
gramaticalmente correctas pero sin sentido. El cdigo fuente de GLL es
realmente bastante sencillo y aunque est escrito desde cero est
influenciado por ideas de los algoritmos RACTER y ALIEN.

Ah, a cada ejecucin distinta de "Con Rumbo" las localidades son tambin
distintas!

En la release 2 se ha mejorado el GLL de modo que cuando se vuelve a una
localidad anterior (en la que ya se haba estado, o se da a la accin
"mirar") esa localidad realmente permanece, no como en la release 1 que se
generaba una nueva, esto se consigue utilizando el mdulo de nmeros
pseudoaleatorios Aleat.h (escrito por mi casi exclusivamente para esta nano)
de modo que calculo un nmero de semilla a partir de las coordenadas de la
localidad, una nica semilla para cada localidad generar siempre la misma
secuencia pseudoaleatoria para esa misma localidad. De ese modo no es
necesario almacenar todo lo generado sino que simplemente se vuelve a
generar.
Doy las gracias a Zak que fue el que me dio la idea, asi que el mrito
tambin es en gran parte suyo.
En esta release 2 tambin se ha ampliado el diccionario con ms palabras
para que no sean tan repetitivas, y aun asi siguen siendo repetitivas, para
ms de 32 palabras por genero/nmero habra que compilar para Glulx.

En la release 3 se han implementado los muros, es decir, cuando se llega al
lmite del mapa de 32x32x32 antes no se comprobaban esos lmites de modo que
segua calculando con negativos (al desbordar) y no se garantizaba que unas
coordenadas tuvieran una nica semilla. Ahora si se llega a los lmites te
topas con un muro que no te deja ir ms all. El muro se ha implementado
como una pseudolocalidad, que cuando intentas salir del mapa te lleva a esa
localidad "muro" que se describe y vuelve a mandar al jugador a la estancia
por la que intentaba sobrepasar el lmite.

Esta es la release 5, que al igual que la 4 implementa la pseudocreacin de
objetos en tiempo de ejecucin, lo que realmente se hace es que cuando se
entra en la localidad, a partir de los nombres y adjetivos generados en esa
localidad se nombran unos objetos predefinidos (ya que el nmero de objetos
por localidad es fijo) y se les genera descripcin con dos adjetivos ms.
Pero a diferencia de la 4, en la 5 los nuevos adjetivos se generan cada vez
que se entra en la localidad de modo que al examinar varias veces el objeto
en cuestin su descripcin no vara, es decir permanece.
El hecho de tener que nombrar objetos en tiempo de ejecucin ha requerido
cambiar las palabras de mi diccionario que eran strings a palabras de
diccionario de Inform, esto supone una limitacin a 9 caracteres por palabra
en la mquina Z (y hay palabras en mi diccionario que superan esa longitud)
asi que a partir de la release 4 el cdigo est preparado para compilar para
Glulx y adems es recomendable. Tambin seguir compilando y funcionando
para Z pero teniendo la limitacin de longitud de las palabras que se
truncarn.
Nota: Ya que los objetos se nombran con la misma palabra de diccionario con
la que se visualizan, si llevan acento o ee deben nombrarse con ese signo
de puntuacin.

Y recordad que lo importante de esta nano (que es un experimento) no es su
resultado superficial sino ms bien su implementacin y las ideas
subyacentes que en un futuro podran aplicarse a aventuras "de verdad", asi
que no tengais miedo en echarle un vistazo y utilizar el cdigo fuente,
sobre todo los que empezais a hacer cosas con Inform, que me consta que cada
vez sois ms.
