Principios básicos de diseño #Programación retro del Commodore 64

Juegos de tablero hay muchos:

  • Ajedrez.
  • Go.
  • Damas.
  • Othello, también llamado Reversi.
  • Backgamon.
  • Etc.

Todos estos juegos se juegan sobre tableros de 8 x 8 casillas o tableros similares. De todos ellos, tradicionalmente se ha considerado que el ajedrez es el rey, aunque el go se ha puesto muy de moda últimamente desde que Google sacara AlphaGo en 2016. IBM ya había sacado Deep Blue veinte años antes, en 1996.

Pues bien, todos estos juegos se pueden programar de forma similar. Los principios de diseño de estos programas los leí hace años en un libro titulado "Aventuras Informáticas", escrito por Alexander K. Dewdney en 1990.

En ese libro hay un capítulo titulado "¿Un programa que juega a las damas sin perder jamás?" donde, precisamente, se describen los criterios de diseño. Me encantaría enlazar aquí una copia del capítulo, así que he escrito a su autor, que afortunadamente todavía vive (nació en 1941), y le he solicitado permiso para añadirlo aquí.

Mientras tanto, tendréis que conformaros con mi resumen:

Todos los programas que desarrollan juegos de tablero, ya sea ajedrez, damas u otros juegos similares, tienen cuatro elementos principales y uno opcional:

  • Un árbol de juego.
  • Un generador de jugadas.
  • Una función de evaluación del tablero.
  • Un procedimiento minimax.
  • Un procedimiento de poda (opcional).

Por supuesto, a estos elementos básicos se pueden añadir otros, como bases de datos de aperturas, bases de datos de finales, etc.

En las entradas que siguen iremos describiendo estos elementos.


Programación Retro del Commodore 64


“Programación Retro del Commodore 64” es un blog sobre el hardware, el sistema operativo, y la programación del Commodore 64. Y más específicamente sobre programación en ensamblador.

Pretende ser un blog con información de calidad, y referencia en español de la programación retro de esta maravillosa máquina.