Historial de desarrollo de El bosque encantado [en OPL+]
Descripción del contenido de la página
Historial de desarrollo del proyecto de juego de aventuras de texto El bosque encantado para Psion 5mx.
2010-07-25
- Primer día de trabajo. Pruebas con modos de pantalla y tipos de letras.
2010-07-26
- Primeras versiones del procedimiento
tell:()
(adaptado de La legionela del pisto) y del sistema de entrada de textos y gestión de tipos de letra (adaptado de Forth 5mx).
2010-07-27
- Terminado el sistema de impresión en pantalla.
- Teminado el sistema de cambio de tipografía.
- Sistema para salir del programa con confirmación.
2010-07-28
- Creada la estructura de datos, vocabulario y acciones.
- Primera versión, aún sin depurar, del analizador.
2010-07-29
- Gestión de errores durante el análisis sintáctico.
2010-08-01
- Retoques y correcciones en procedimiento
parser:()
.
2010-08-10
- Corregida la errata que hacía ir al este en lugar de al sur.
- Primer borrador de los movimientos para continuar y retroceder.
2010-08-14
- Terminada la mejora del procedimiento
tell:()
para imprimir en la posición del cursor. Nuevos procedimiento para hacerlo en líneas nuevas, con o sin tabulación. - Primera versión del sistema de desplazamiento de pantalla.
2010-10-25
- Primera versión de
isThing%()
.
2010-12-16
- Detectado el problema del analizador: ¡los nombres de los objetos no están integrados en el vocabulario!
2010-12-17
- Comienzo de la interrelación de las matrices de cosas y de palabras.
2010-12-22
- Cruce de la inicialización de matrices de vocabulario y cosas.
2010-12-23
- Nuevo formato para la matriz de salidas.
- Corregido el procedimiento de listado de salidas.
2010-12-26
- Localizado el error que impedía asignar el número de objeto de la acción.
- Constantes para los identificadores de lugares.
2010-12-28
- Funcionan todas las acciones de inventario.
2010-12-29
- Implementada la acción de soltar objetos.
- Implementado el número máximo de objetos en inventario.
- Implementada la acción de mirar.
- Implementado el género y la familiaridad de los objetos.
2010-12-30
- Varios retoques y correcciones.
- Funciones para elegir un texto al azar entre varios.
2010-12-31
- Creados los personajes del guardián y del fantasma en la matriz de cosas, en lugar de tratarlos como eventos de escenarios (como hace el programa original).
- Creado el personaje protagonista en la matriz de cosas.
2011-01-01
- Depurados varios errores infrecuentes en procedimiento
tell:()
. - Reescrito
debugTell:()
para facilitar su uso. - Textos alternativos aleatorios en los listados de cosas presentes y salidas.
- Modificado el procedimiento
newLine:()
para que no haga nada si la coordenada X es 1.
2011-01-02
- Implementado en procedimiento
accept$:()
el menú general y algunas opciones: nueva partida, cerrar programa, zun (zoom), limpiar pantalla y acerca de. - Mejorado el procedimiento
fatalError:()
conalert()
y un parámetro adicional (el nombre del procedimento donde se produjo el error). - Simplificado y mejorado el procedimiento
scroll:()
. En lugar de desplazar la mitad de las líneas, ahora desplaza todas menos dos de referencia y fija la línea tres como de impresión. - Nuevo procedimiento
clearData:()
para poner a cero las matrices antes de cada partida. - Mejorado el procedimiento
name$:()
para que compruebe que existe el término asociado a la cosa.
2011-01-03
- Las líneas preservadas por el procedimiento
scroll:()
son ahora configurables (de 0 a 4) con el menú. - Cambiados todos los nombres thing/things por entity/entities en procedimientos, variables y constantes, para mayor claridad del código.
- Cambiado known por familiar en procedimientos y matrices, para hacer más legible el código.
- Añadido el menú de edición, también con acceso desde el botón lateral.
- Implementado el cálculo del directorio desde el que ha arrancado el programa.
- Terminado de implementar el historial de comandos.
- Primer intento sin éxito de implementar Ctrl+M y Control+Shift+M, con
kmod
, como comandos de tamaño de letra en el procedimientoaccept$:()
. - Implementada la demo opcional al cambiar de tamaño de letra.
- Convertidos los escenarios en entidades como el resto.
2011-01-04
- Arreglados todos los fallos del procedimiento
accept$:()
. Ahora imprime en la coodenada interna del programa, igual que hacen los procedimiento de salida de textos. La longitud de la línea de comandos puede ser máxima en cualquier tamaño de letra. - Variable
scrollPrompt$
y constanteKScrollPromptDefault$
. Con ellas el presto del desplazamiento queda preparado para ser configurable, aunque aún no puede hacerse. - Primeros pasos para cambiar el sistema de identificadores de las entidades: usaré
#define
en lugar deglobal
, para que no haya que asignarlas sobre la marcha en el procedimientosetupTerms:()
. El nuevo sistema hará más sencilla la modificación del código para añadir nuevos términos y entidades.
2011-01-05
- Implementada la selección de dialecto (castellano o americano). Primeros textos afectados (verbo «coger»).
- Añadido el diálogo de preferencias, accesible con teclado y menú. Incluye el dialecto y el presto.
- Unificados los nombres de constantes de máscaras buleanas y las matrices donde se usan.
- Pasadas de la matriz de entidades a la matriz de términos las características de género gramatical y ausencia de artículo.
- Terminada la conversión de las variables globales de identificadores de entidades en constantes. Esto simplifica el «papeleo» necesario para crear nuevas entidades y términos.
2011-01-06
- Modificado el procedimiento
newTerm%:()
para que devuelva el número del término creado, pues algunas veces esnecesario conservarlo. - Organizados los identificadores de entidades; los límites de los grupos (direcciones, personajes, cosas y escenarios) se guardan para poder manipularlos por separado en bucles.
- Nuevas funciones para textos al azar,
textIf1Of$:()
,textIf0$:()
ytextIf0$:()
. - Bocetos de los procedimientos de descripción de entidades, por categorías y con tres niveles de detalle.
- Implementado el recuerdo de la última acción exitosa. (Ampliable para que se aplique a todo el historial de acciones).
- Dividido el programa en módulos; con 2500 líneas, empezaba a ser lento de manejar.
2011-01-07
- Perfeccionado el procedimiento
listExits:()
. - Nombres e identificadores definitivos de casi todos los escenarios.
- Retoques pendientes en las acciones de movimiento.
- Reorganización uniforme de los procedimientos de los módulos: de menor a mayor nivel, análogamente a la definición de palabras en Forth.
2011-01-09
- Creadas las constantes y las estructuras para implementarlas descripciones de las direcciones en el procedimiento
locationDescription:()
.
2011-01-17
- Creado el borrador para la gestion de eventos al cambiar de escenario.
2011-01-23
- Corregidos errores en funciones de impresión de textos al azar.
- Corregidos errores en los textos del listado de salidas.
2011-01-25
- Creada la matriz
exitsCrossed%()
, y sus procedimiento asociados, para convervar el recuerdo de los pasos entre escenarios y ajustar con ello la descripción de las direcciones. - Mejorados los textos del procedimiento
describeDirection:()
.
2011-01-26
- Modificado el procedimiento
accept$:()
para impedir los espacios iniciales o dobles en la frase. - El bip de errores de tecleo ahora puede ser desactivado en las preferencias.
- Implementado en el analizador el contador
parsedWords%
para distinguir si no hay objeto de si lo hay pero no es reconocido. Esto permite hacer diferentes cosas en algunas acciones, como «mirar». - Diferenciado «mirar» sin más (que equivale, como antes, a mirar el lugar), de «mirar» algo que el analizador no reconoce.