lunes, 13 de abril de 2015

Mi primer programa de ajedrez


En noviembre hará cinco años ya que se compartió por aquí un programa que en aquel entonces vino a facilitar la lectura de posiciones de ajedrez con lectores de pantalla. Estoy seguro de que muchos aún lo seguís utilizando, pero también de que otros tantos pensáis que el proceso sigue siendo engorroso. Para estos últimos es que he desarrollado el programa que hoy os presento.

 

Efectivamente, últimamente me ha dado por estudiar Python, un lenguaje de programación muy popular con el que voy haciendo ya algunas cosas prácticas; y más por aprender que por el provecho de mis aplicaciones, me he aficionado a este pasatiempo.

 

Lo que hace el programa                      


 

Básicamente dos cosas:

 

  1. Anota partidas en un ‘txt’. Por ejemplo, introduciendo ‘e2e4’, ‘e7e5’, ‘g1f3’, el programa devuelve ‘1. E4 e5 2. Cf3’.
  2. Transcribe a algebraico el código FEN de los ‘pgn’, haciendo una copia del original con el turno y la posición, que escribe justo antes de las jugadas.

 

Contenido del paquete


 

El programa se presenta en un ‘zip’ que contiene los archivos necesarios para su funcionamiento, pero además,  si no lo tienes todavía, debes descargar e instalar la última versión del intérprete de Python 3.

 

Uso del programa


 

Y por fin llegamos a lo entretenido. Sin que podamos prescindir de ninguno de los archivos del paquete, los que más nos interesan son dos: ‘Ajedrez.py’ y ‘Posiciones.py’, para hacer uso de las dos funciones antes descritas.

 

Ajedrez

               

A falta de un nombre mejor nos quedamos con este. Al ejecutarlo el programa presenta un cuadro de texto que admite varias opciones:

 

  1. Una jugada válida del tipo ‘casilla origen’ ‘casilla destino’.
  2. ‘tablero’, para mostrar la posición y pedir de nuevo una jugada. La posición a de leerse con cursor de JAWS.
  3. ‘salir’.

 

Tras cada uso, el programa habrá escrito en ‘Partidas.txt’ la notación algebraica de las jugadas que le hayamos pasado.

 

Posiciones

 

Este es más sencillo todavía. Se pegan en la carpeta del programa los ‘pgn’ que queramos transcribir y a continuación se ejecuta. El programa creará una carpeta ‘Ejercicios accesibles’, e irá metiendo en ella las copias de los mismos. Por cada archivo terminado emitirá un sonido de satisfacción.

 

Y ello es todo. Estaré encantado de recibir comentarios y sugerencias, y trataré de solucionar eventuales problemas que inevitablemente surgirán.

 

Como seguramente los más perspicaces han deducido ya, el programa ha sido pensado para Windows. Dada la versatilidad de Python no creo que sea difícil hacerlo correr en otras plataformas, pero no es mi propósito. Si alguien estuviera dispuesto a hacerlo o a contribuir de cualquier manera en el desarrollo del proyecto, yo estaría encantado.
 
 Edito el 19/03/2021

Ya que todavía hay gente que se interesa por esto, he subido el programa a un repositorio de GitHub, donde será más útil y persistirá el enlace. En su día no comenté el código y tampoco me puedo poner ahora con ello, pero ahí está para quien tenga curiosidad.
https://github.com/rgmagadan/ajedrez