Colossus Chess

Programación retro del Commodore 64

  • 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.
    • Mi blog
« Publicado el: 05/07/2022 »

“Colossus Chess” fue una serie de juegos de ajedrez ganadores de muchos premios durante los 80. Lo programó Martin Bryant y se portó a casi todos los equipos de 8 bits de la época.

Jugué muchas veces contra “Colossus Chess”. Ya no recuerdo si conseguí ganarle en alguna ocasión, pero sí recuerdo haberlo puesto contra las cuerdas más de una vez. Al final, casi siempre cometía algún fallo garrafal, se me revolvía, y me daba un buen repaso.

Aquí os dejo un par de pantallas de una partida reciente. Este es el tablero de juego (tenía una vista 2D y otra 3D):

Y este es el registro de la partida y lo que está pensando la máquina:

El juego tenía muchísimas funcionalidades, entre las que destacan:

  • Tablero de juego con vistas 2D y 3D. Se pueden cambiar los colores. Se puede cambiar la orientación del tablero.
  • Registro de jugadas de la partida en notación algebraica, incluyendo los tiempos de juego de cada jugador.
  • Información sobre el análisis de jugadas que está haciendo Colossus (“lookahed”: profundidad de análisis, “positions”: número de tableros analizados, “current line”: variante actual, “best line”: variante principal, etc.).
  • Evaluación de tableros atendiendo a criterios materiales (número y tipos de piezas), de posición (posición de las piezas en el tablero), y otros.
  • El juego no sólo “piensa” durante su turno, sino que también analiza jugadas mientras piensa el contrincante humano. Para ello, hace una hipótesis sobre la jugada que jugará el humano (“assumed”), y analiza jugadas a partir de esa hipótesis.
  • Se permite alterar la posición de las piezas, para así llevar el tablero a una situación X desde la que se quiera continuar una partida.
  • Se permite deshacer movimientos, por ejemplo, para rectificar errores; también se permite repetir movimientos.
  • Guardar partidas a cinta o disco, y cargarlas de nuevo.
  • Cambiar de bando. Pedir a Colossus que haga una jugada por ti.
  • Que Colossus juegue contra sí mismo.
  • Aplicar una base de datos de aperturas y finales de partida.
  • Repetir una partida, en el sentido de reproducir todos los movimientos del registro de jugadas, desde el primero hasta el último.
  • Modificar los parámetros de configuración del juego: si Colossus usa o no la base de datos de aperturas / finales, si Colossus “piensa” o no durante el turno del contrincante, la profundidad de análisis del árbol de jugadas, etc.
  • Etc.

En definitiva, un juego completísimo e imbatido cuando se midió contra programas similares en otros equipos de 8 bits (Apple II, Spectrum, Atari, etc.).

Ahora que hemos intentado acercarnos un poco a la programación de este tipo de juegos, podemos hacernos una idea de la grandísima dificultad que suponen.