29/03/2006

¿Y por qué no escribir un programa que juegue al ajedrez?

De esta forma puedo reunir dos de mis formas favoritas de perder el tiempo: la programación y el ajedrez.
Inspirado por el muy recomendable libro de Diego Rasskin "Metáforas de ajedrez" me puse manos a la obra a principios del mes de marzo.


Ha pasado un mes desde entonces, y el programita ya ha tomado forma: conoce casi todas las reglas (aún no le he enseñado a comer al paso), calcula unas 10.000 posiciones por segundo y juega con un nivel comparable al de un aficionado medio. Mientras escribo esto está ocupado resolviendo una posición de test, una combinación ganadora para las blancas en 5 plys: le lleva unos 7 minutos.
Las cifras no son espectaculares, ya lo sé. Pero ya dije que apenas el programa empieza a tomar forma, está en pañales todavía.

A ver, el programa está en java. Y orientado a objetos. Dos cosas que no tienen fama de incrementar la velocidad precisamente.
Estoy harto de oír que java es lento. Y que un programa de ajedrez sólo se puede escribir en C. Bien, esto puede ser una buena prueba para refutar esto. Aunque por supuesto mi objetivo no es hacer un programa rapidísimo, una bestia calculadora. Más bien prefiero que sea "listo" (o al menos que lo parezca), más que nada porque es mucho más divertido de programar y la diversión es un asunto muy importante en todo esto.

Iré colgando por aquí paso a paso como va el programita, así que si te interesa la programación, el ajedrez o los programas de ajedrez igual te resulta entretenido pasarte por aquí de vez en cuando.