sábado, 24 de octubre de 2015

Tetris en Pascal

Corría el año 2001 cuando empecé a estudiar la Ingeniería en Informática en la Universidad Complutense. Ya desde que estudié Educación General Básica me gustaban los ordenadores y trastear con la creación digital. Había hecho cosas con POV-Ray, alguna que otra web con CSS+JS, programado en Basic, niveles para algunos juegos y poca cosa más.

Al entrar en la carrera nos introdujeron en la programación con el lenguaje Pascal. Hoy está en práctico desuso incluso en este ambiente universitario inicial, pero por entonces se pensaba que era una buena forma de iniciarse en la programación estructurada. Y no era mala idea: tenía todas las estructuras más comunes de programación y, sobre todo, permitía hacer cosas interesantes. Para aquellos que nunca se las habían visto con un lenguaje de programación, ofrecía una forma cómoda de conocer las posibilidades de las estructuras de datos, bucles y demás.

Como ya tenía práctica en programación y demasiadas inquietudes, me dio por crear algún que otro juego. Y aquí presento mi versión del popular juego Tetris, del año 2001, en Pascal.

El código fuente, que está disponible en github, puede ser descargado siguiendo este enlace. Tiene de todo: los típicos errores de principiante en la creación de código, falta de algunos comentarios para aclarar qué hacen algunos procedimientos, procedimientos y variables cuyo nombre hace difícil saber qué hacen, un procedimiento con ensamblador que copié de algún sitio sin guardar la referencia y que vacía el buffer del teclado y palabras inventadas.

Pero al ejecutarlo ofrece un juego que, siendo sencillo, permite entretenerse un rato y ver qué tenía por la cabeza un joven de 18 años con toda una carrera en Informática por delante. Algún día escribiré sobre estudiar Informática, pero ahora, con el paso del tiempo, es entretenido ver estas pequeñas creaciones.

El juego tiene lo que se puede esperar de una implementación "casera":

  • Entorno gráfico a 640x480.
  • Control de puntuaciones récord.
  • Niveles de dificultad creciente en relación a la velocidad de caída de la ficha que se van superando según el número de líneas, que modifican el color de las piezas ya colocadas sobre el tablero.
  • Posibilidad de escoger hándicap inicial: cuántas filas estarán rellenadas con bloques aleatoriamente.
  • Una animación de persiana para cambiar la parte de pantalla de información y menú.
  • Estadísticas en pantalla sobre la aparición de fichas.
  • Información de siguiente ficha.
  • Sonidos.
  • Animaciones para cuando se hacen de 1 a 4 líneas.

Dejo a continuación una serie de capturas de pantalla del juego:









Se puede descargar una compilación del juego en .exe siguiendo este enlace.

Oye, tampoco es gran cosa, pero hace ilusión saber que quizás alguna de las visitas que llegan a este blog por error descarga el juego y le dedica un minuto a algo hecho hace tantos años. No es una creación de alta ingeniería, pero permitió pasar el rato, que era lo que buscaba.

Como siempre, cualquier comentario es bienvenido :).

1 comentario:

  1. Te entiendo perfectamente. Hace años desarrollé un par de aplicaciones, una en Borland C+ Builder y otra, más antigua en Clipper 5.2. Si ahora las viese funcionar seguro que me gustaria.

    ResponderEliminar