|
|
Galería de Software Antiguo
Por Ginés García Mateos
Presentación
| Aviso | Ejecución | Programas
Presentación
Bienvenido a la Galería de
Software Antiguo. Esta página contiene algunos programas creados por el autor de
la misma durante el pasado Siglo XX. No pretende ser, por tanto, un museo de los inicios
de la programación, sino un recopilatorio personal de mis primeros
programas --algunos de ellos con más de 21 años de antigüedad--, seleccionados de entre
aquellos que considero que aún pueden tener cierto interés. El objetivo es mostrar,
reflejada en la experiencia personal e intrasferible del que susbcribe, siquiera una
pequeña parte de la evolución de la programación desde aquellas épocas pretéritas de
la informática.
La mayoría de los programas aquí
expuestos fueron desarrollados en un ZX Spectrum, una plataforma muy popular en España
durante la década de los 1980. Esta máquina estaba dotada del procesador de 8 bits Z80,
trabajando a unos 4 Mhz, con 64Kbytes de memoria, 48K de ellas de RAM y 16K de ROM que
contenían el sistema operativo y el primitivo BASIC. Para el almacenamiento de datos y
programas se utilizaban cintas de casete convencionales. Después de permanecer guardadas
en el baúl de los recuerdos durante largos años, ahora vuelven a poder ejecutarse
gracias a la magia de los emuladores. Los programas disponibles, en formato .Z80, han sido
probados en el emulador
ZX32. El código fuente de los programas ha sido extraído con el programa ZXRainbow.
Aviso
importante
El autor de esta página no
se responsabiliza del correcto funcionamiento de los programas aquí contenidos, NI SE
RESPONSABILIZA, en ningún caso y bajo ningún concepto, de los posibles daños causados
por su uso. Se autoriza la posesión, uso y distribución de los programas y el código
aquí contenidos.
Ejecución
- Instalar el emulador ZX32,
o cualquier otro que reconozca el formato .Z80 y .ZXS.
- Ejecutar el emulador y abrir el archivo correspondiente.
Programas
FUTBOLIN |
Descargar futbolin.z80
(16 Kbytes) |
Año (aprox.): 1987
|
Ordenador: ZX
Spectrum 48K
Listado del código
(328 líneas)
Lenguaje: BASIC
Descripción: Se trata de un juego de tablero muy simple inspirado en el
fútbol. Es la implementación de un juego de dados, con tablero metálico y fichas
magnéticas, como otros muchos que existían por aquel entonces.
Los 11 jugadores de cada equipo están situados a lo largo de un camino desde una a otra
portería. Según la tirada del dado avanzamos tantas posiciones en la dirección del
equipo que mueve. Se consigue un gol superando la posición del portero en una unidad. El
jugador controla el momento en que se para el dado, lo que da cierto grado de control.
A pesar de la sencillez del juego, el acabado estaba muy trabajado: aspecto gráfico y
sonoro, efectos especiales varios, posibilidad de definir los nombres de los equipos y la
duración del partido, inclusión de comentarios, etc. Por ejemplo, en caso de acabar el
partido en empate hay una tanda de penaltis.
Notas y curiosidades: Al inicio, el juego pregunta los nombres de los
equipos. Poniendo en el nombre "ordena" conseguimos que ese jugador (es decir,
el movimiento del dado) sea controlado por el ordenador. |
|
SUPERCESTO |
Descargar supercesto.z80
(30 Kbytes) |
Año (aprox.): 1988
|
Ordenador: ZX
Spectrum 48K
Listado del código
(707 líneas)
Lenguaje: BASIC
Descripción: Este programa es también la implementación de un viejo
juego de dados, esta vez inspirado en el baloncesto. Cada equipo tiene 5 jugadores que se
pueden mover por el tablero o lanzar cuando están en línea o en diagonal con la canasta.
La estrategia del equipo es muy importante para conseguir un buen resultado, lo que hace
de éste un interesante juego de inteligencia.
Posiblemente, este fue el proyecto más largo y complejo que llevé a cabo en un Spectrum.
La mayor parte del código se dedica a la parte gráfica y al control de las reglas del
juego. Se incluía la posibilidad de jugar competiciones de liga (de hasta 20 equipos), y
de ver las estadísticas del partido (individuales y por equipos).
Todo lo anterior hacía que un proyecto de este tipo se alargara durante varios meses o
incluso años. Al estar todas las líneas numeradas por orden, las novedades debían ser
introducidas normalmente por el final. De esta manera, el número de saltos (GOTO)
aumentaba considerablemente y con ello el desorden del código.
Notas y curiosidades: La primera versión no incluía líneas de triples,
ya que todavía no se habían inventado. Fueron añadidas después, al poco de su
introducción en el baloncesto europeo. El proyecto de este juego sería retomado unos 8
años más tarde en el desarrollo de una versión para PC, como se comenta más adelante. |
|
EL DRAGO |
Descargar drago.z80
(9 Kbytes) |
Año (aprox.): 1989
|
Ordenador: ZX
Spectrum 48K
Listado del código
(168 líneas)
Lenguaje: BASIC
Descripción: Este juego es más una curiosidad matemática que un
verdadero juego de inteligencia. Se dibujan inicialmente n puntos. Cada jugador
debe trazar una línea entre dos puntos, respetando dos restricciones: las líneas no se
pueden cortar, y en cada punto pueden confluir como máximo 3 líneas. Por cada línea
trazada se dibuja un nuevo punto en el centro de la misma. Pierde el primer jugador que no
pueda mover.
Viendo el código del programa se puede apreciar que la mayor parte está dedicada al
control de la entrada (READ, INKEY$, IN) y la salida (PRINT,
PLOT, DRAW, etc.). Los algoritmos subyacentes son siempre muy sencillos.
Notas y curiosidades: El problema tiene una fuerte inspiración en la
teoría de grafos. De hecho, la idea está sacada de un juego descrito en el libro
"Carnaval Matemático" (de Martin Gardner, Alianza Editorial, 1987), denominado
el juego del drago o las coles de Bruselas. |
|
COMIC DOBLE |
Descargar comicdoble.z80
(8 Kbytes) |
Año (aprox.): 1990
|
Ordenador: ZX
Spectrum 48K
Listado del código
(226 líneas)
Lenguaje: BASIC
Descripción: Es un sencillo juego de parejas, aunque bastante adictivo.
Partimos de un tablero con 22 casillas numeradas; el objetivo es ir destapándolas para
encontrar todas las posibles parejas en el menor número de movimientos. El juego está
basado en el, por aquel entonces, popular programa de televisión "No te rías que es
peor", y más particularmente en su sección "Tebeo Doble".
Igual que antes, se puede apreciar en el código una predominancia de las operaciones de
salida por pantalla. Aparecen también muchas instrucciones GOSUB, que indican
saltos a subrutinas. Estas subrutinas son implícitas: el lenguaje sólo ofrece
una instrucción de salto y otra de retorno, pero no hay ningún mecanismo de paso de
parámetros, ni se puede dar un nombre a la rutina; su código está mezclado con el resto
del programa. De esta forma, la subrutina era poco más que un simple par de GOTOs.
Notas y curiosidades: El programa fue publicado en la revista "Micro Hobby" en enero de 1992 (ver la página 45).
Por desgracia, ese fue el último número de esta revista dedicada al mundo del Spectrum.
Otros programas fueron enviados también a la misma revista (entre ellos algunos de los
aquí contenidos), aunque ninguno vería la luz. |
|
FUNCIONES |
Descargar funciones.zxs
(24 Kbytes) |
Año (aprox.): 1990
|
Ordenador: ZX
Spectrum +2
Listado del código
(621 líneas)
Lenguaje: BASIC
Descripción: Aunque era algo lento, el Spectrum no sólo servía para
jugar, y este programa es una demostración de ello. Es una aplicación bastante completa,
que permite realizar representaciones gráficas en 2D y 3D de funciones matemáticas en
una o dos variables, respectivamente, definidas por el usuario. Cuidando un poco los
rangos de visualización es posible obtener resultados muy interesantes.
Indudablemente, lo más complejo de este programa era la representación en 3D. Y, dentro
de esto, el algoritmo para decidir las partes ocultas y las partes visibles. En general
funciona bastante bastante bien, aunque se puede ver que lejos de ser perfecto.
Nuevamente, los algoritmos son sencillos pero la parte matemática es algo más
complicada.
Notas y curiosidades: En algunos aspectos el BASIC del Spectrum era muy
potente. Por ejemplo, permitía de manera sencilla evaluar una expresión matemática
contenida en una cadena. Esto facilitaba enormemente los cálculos, aunque resultando en
un proceso muy lento. Por ello, el programa aplica la función en unos pocos puntos e
interpola (traza una línea) entre cada par. |
|
CIFRAS |
Descargar cifras.exe
(646 Kbytes) |
Año (aprox.): 1994
|
Ordenador: PC
(Windows)
Listado del código no disponible (446 líneas)
Lenguaje: Turbo Pascal y Delphi
Descripción: Como su nombre indica, este programa resuelve el conocido
problema de las cifras, célebre gracias al popular concurso televisivo "Cifras y
Letras". Disponemos de 6 números enteros, que se pueden combinar con la suma,
resta, multiplicación y división entera. El objetivo es obtener otro número dado usando
los números de entrada como máximo una vez.
Hay que hacer notar que se ha generalizado el problema, para que en lugar de 6 números de
entrada puedan haber entre 3 y 10, con lo cual aumenta el tamaño del problema.
Este es el primer programa de cierta entidad que realicé en entorno Windows, aunque el
motor fue creado en Turbo Pascal y la parte visual, bastante elemental, algo después. Los
algoritmos están muy elaborados, resolviendo el problema con una alta eficiencia. En un
ordenador actual, el programa no debería tardar normalmente más de unos 10 milisegundos
en resolver un caso con 6 números de entrada.
Notas y curiosidades: Desde hace unos cuantos años existe un reto para
los alumnos de la asignatura "Algoritmos y Estructuras de
Datos", consistente en superar en eficiencia este programa, razón por la cual no
se ofrece acceso al código fuente. Han habido ya varios intentos, por lo menos dos de
ellos con buenas perspectivas. Sin embargo, ambos fallaban en un aspecto clave: no se
puede perder ningún resultado. |
|
EL ULTIMO
ALIHUP |
Descargar alihup.zip
(4.170 Mbytes) |
Año (aprox.): 1995
|
Ordenador: PC
(Windows)
Lenguaje: C y ensamblador
Listado del código no disponible (más de 8.000 líneas)
Descripción: Casi 8 años después de haber empezado la versión para
Spectrum (titulada Supercesto), con la colaboración de mi hermano
Juan Francisco, retomamos el proyecto de este juego de tablero.
Respecto a la primera versión, se incluían numerosas características adicionales: base
de datos con equipos y estadísticas acumuladas, posibilidad de jugar competiciones de
liga y copa, concurso de triples, capacidad de jugar del ordenador (para lo que se
desarrolló una inteligencia artifical muy básica), efectos sonoros, etc. Se modificaron
ligeramente las reglas del juego, principalmente en lo que se refiere a la posibilidad de
hacer cambios y a las faltas personales, con el fin de mejorar la estrategia del juego.
Este proyecto supuso un buen banco de prueba de los métodos y técnicas aprendidos en los
primeros años de la carrera: programación estructurada, abstracciones, refinamientos
sucesivos, etc. Desafortunadamente la ingeniería del software no se incluía entre ellos,
por lo que el proyecto se desarrolló sin un buen análisis y diseño previo. Al alargarse
el proyecto durante varios años, el programa se llegó a convertir en un amasijo de
código incomprensible. Cualquier problema resultaba difícil de aislar, y difícil saber
si los cambios necesarios afectarían a otras partes de código.
Notas y curiosidades: Se puede encontrar más información del juego en esta página. El programa fue enviado al concurso de programación
de videojuegos de PC Manía de 1996, y después al concurso de PC Actual de 1998, donde
fue premiado con el tercer puesto. |
|
|
Ultima
modificación: 12/4/2009
Autor: Ginés García
Mateos
E-mail: ginesgm@um.es
|