Principios básicos de diseño

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, bases de datos de partidas, etc.

En las entradas que siguen iremos describiendo estos elementos.

2 comentarios en “Principios básicos de diseño”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s