Colegio Erevest

Descripción del contenido de la página

Tres versiones de una aventura conversacional escrita en Sinclair BASIC para la Sinclair ZX Spectrum, ambientada en un colegio de curas nada simpáticos, escritas entre 1985 y 1986.

Etiquetas:

Presentación

Cuando empecé a escribir esta aventura conversacional habían pasado menos de dos años desde la primera vez que abrí el manual de la ZX Spectrum, mi primera computadora, poco después de sacarla de su caja. Ya entonces la programación se había convertido en mi pasión y, entre todas sus muchísimas aplicaciones, los juegos de aventuras conversacionales eran los que más me atraían, aunque no tanto como jugador sino como programador.

Colegio Erevest es la primera aventura conversacional que escribí. Desde que la terminé en 1986, a lo largo de los años, empecé a escribir otras aventuras técnicamente mucho más avanzadas, en varios lenguajes de programación (Z80, Forth, Clipper...); pero hasta el momento de escribir estas líneas ninguno de dichos proyectos está terminado. Quería perfeccionar tanto el intérprete de comandos y la representación interna del mundo virtual que la escritura del argumento, los contenidos, el diseño de problemas y, por supuesto, los gráficos, siempre estaban al final de la lista de tareas pendientes. Colegio Erevest es pues hasta la fecha no sólo la primera aventura conversacional que escribí, como ya he dicho, sino la única que he terminado (con la excepción de la aventurilla experimental La aventura de Ug).

Entre 1985 y 1986 escribí tres versiones de Colegio Erevest, cada una con algunas mejoras respecto a la anterior, tanto en las interioridades del programa como en su manejo y el desarrollo del juego. Afortunadamente conservé las tres versiones, pues resulta muy curioso ver las diferencias en el código al cabo de tantos años. Ninguna de las tres versiones es un ejemplo de programación estructurada sino todo lo contrario. Las características de Sinclair BASIC, unidas a la complejidad y al tamaño del programa, no facilitaban mucho escribir de forma clara; eso por no hablar de la limitación de memoria, que en la tercera versión empezó a ser un condicionante.

Con sus muchas limitaciones, Colegio Erevest tiene algunas características brillantes, especialmente la versión 3: por ejemplo, una rutina de entrada de comandos que funciona asíncronamente con el flujo principal, y unos personajes seudo-interactivos que se mueven por los escenarios mientras el jugador teclea (o no) sus instrucciones. El resultado es que, independientemente de que el jugador dé intrucciones, los personajes se mueven y podemos encontrarnos con ellos.

En la primera versión programé un intérprete de comandos demasiado sencillo, que obligaba siempre a escribir dos palabras, ni una más ni una menos, y no lo mejoré sustancialmente en las dos siguientes versiones. Ese detalle es como una espinita que tengo clavada desde entonces, pues con un intérprete más sofisticado el juego ganaría mucho en comodidad de uso. Tiempo después escribí un intérprete muy potente para una nueva aventura, Finen per Imago, escrita en Z80.

Entre mis proyectos de programación hay una aventura conversacional que es una secuela tácita de Colegio Erevest: La legionela del pisto.

Argumento y objetivo

Es de noche... Y esto es lo que el programa nos cuenta al empezar:

Estás en las cercanías del famoso colegio Erevest (centro de formación integral).

Mañana tendrá lugar el examen final del curso y no sabes ni de qué va.

Un compañero te dio ayer una llave maestra de todas las cerraduras del colegio. Quizá si lograras entrar y copiar las preguntas del examen podrías aprobar... y de paso cambiarías tus notas de todo el curso. Puede que a estas horas todavía haya algun cura dentro, pero hay que arriesgarse.

Las notas y el examen están en una caja fuerte que debes hallar sin ayuda de nadie, así como la combinación para abrirla.

El objetivo es pues entrar en el colegio, llegar hasta la caja fuerte, copiar el examen del día siguiente, cambiar las notas y salir a la calle de nuevo sin ser sorprendido por algún cura (o saliendo airoso del encuentro).

Para lograr el objetivo necesitaremos algunos objetos sencillos y la combinación de la caja. Para encontrarlos deberemos recorrer el colegio.

Características del programa

La versión 2 y la versión 3 añadieron algunas funcionalidades nuevas que están descritas en sus páginas. Aquí sólo menciono las características comunes a las tres versiones:

Vocabulario y sintaxis

Uno de los puntos débiles de Colegio Erevest es su limitado vocabulario y su más que espartano intérprete de comandos, que espera siempre dos palabras: un verbo y un objeto o complemento. Esto obliga a escribir «MIRA TODO» en lugar de «MIRA»; «VE NORTE» en lugar del habitual «N»; y aun peor: «HAZ INVENTARIO» en lugar de simplemente «I». Como consolación, el intérprete sólo utiliza las cuatro primeras letras de cada palabra, así que podemos escribir: «VE NORT» y «HAZ INVE».

Los verbos deben escribirse en imperativo, no en infinitivo (aunque dado que sólo las cuatro primeras letras cuentan, en la mayoría de los casos daría igual). Los verbos aceptados en las dos primeras versiones son: VE, COGE, DEJA, ABRE, COPIA, CAMBIA, HAZ, MIRA, ENCIENDE y LEE. La lista se amplió con algunos sinónimos en la versión 3: VETE, CONECTA, RECOGE, TIRA, SUELTA y EXAMINA.

Los objetos y complementos aceptados en las tres versiones son: NORTE, SUR, ESTE, OESTE, PUERTA, INVENTARIO, TODO, LLAVE, NOTAS, EXAMEN, BOLI, FOLIO, CAJA, LAPIZ, LINTERNA, ZAPATO, CALCETIN y PAPELITO.

Pantallazos

Cada una de las tres versiones tiene una página propia que incluye entre otras cosas pantallazos de algunos momentos del juego. Aquí muestro sólo las pantallas de presentación o carátulas:

Pantalla de presentación de Colegio Erevest 1 (se ve de lejos que para dibujar la nariz del cura me inspiré en los personajes del genial Jan, el dibujante de los cómics de Superlópez):

Colegio Erevest 1

Pantalla de presentación de Colegio Erevest 2, una versión más elaborada de la anterior:

Colegio Erevest 2

Pantalla de presentación de Colegio Erevest 3, un diseño nuevo mucho más impactante, que de los anteriores sólo aprovecha la nariz, el brazo y poco más:

Colegio Erevest 3

Código fuente

Los listados del código fuente pueden verse en las páginas de cada una de las tres versiones:

Variables

Para ayudar a la comprensión de los listados, muestro a continuación el uso de las variables y matrices principales. Salvo indicación, se usan igual en las tres versiones del programa:
Nombre Uso
A$ orden; y uso general para imprimir
B$ verbo de la orden; y uso general
C$ objeto o complemento de la orden
CA ¿caja fuerte abierta?
CC ¿notas cambiadas?
E$() preguntas del examen
EC ¿examen copiado?
EXP (en las versiones 1 y 2) ¿expulsado?
EXPU (en la versión 3) ¿expulsado?
FAL contador de faltas de disciplina
HAY número del primer objeto que puede ser transportado
IS número del objeto o complemento de la orden
L$() asignaturas y notas
LUZ ¿linterna encendida?
M$() mandamientos
N$ nombre del jugador
NC número de objetos transportados
NCM número máximo de objetos que el protagonista puede llevar
NH número de habitaciones
NP número de personas
NS número total de objetos y complementos
NV número de verbos
O() lugar en que están los objetos
P$() nombres de los personajes
P() lugar en que están los personajes
PER número del personaje con el que se encuentra el protagonista
R$ (en la versión 3) nombre del jugador que ha completado la aventura en menor tiempo
S$() objetos y complementos
S() salidas de cada habitación
SCA habitación en que está la caja fuerte
SIT habitación actual
T$() (en la versión 3) tabla de relaciones entre verbos y objetos
T() (en las versiones 1 y 2) tabla de relaciones entre verbos y objetos
V$() verbos
V() (en las versiones 2 y 3) ¿ha habido un encuentro previo con el personaje?
X$ clave de la caja fuerte

Descargas

He recopilado las tres versiones de Colegio Erevest en ficheros DSK y TAP, con un cargador que permite elegir jugar a cualquiera de ellas.

Las versiones 2 y 3 del programa están actualizadas por última vez en fecha 2011-03-25 (había un pequeño error en el cálculo de la dirección de CLEAR antes de cargar el juego de caracteres).

Las tres versiones del programa en un fichero DSK (imagen de disquete de la ZX Spectrum +3; aunque el programa es para el modelo de 48 KiB, funciona sin problemas en los modelos de 128 KiB):

Las tres versiones del programa en un fichero TAP (imagen de cinta de casete):