Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Programación lúdica: Lenguaje de ejercicios de táctica de ajedrez

En el artículo anterior hablamos de un programa que permite jugar una partida de Ajedrez Solitario. La idea es entrenarse para la batalla, intentando encontrar...

hgiyc_gen01
En el artículo anterior hablamos de un programa que permite jugar una partida de Ajedrez Solitario. La idea es entrenarse para la batalla, intentando encontrar las jugadas correctas de uno de los jugadores de una partida magistral (normalmente quien ganó), y además, recibiendo puntos por jugada acertada, de manera que en alguna medida el ejercicio no sólo nos muestra una partida magistral, sino que además nos da el estímulo de retroalimentación positiva cuando acertamos las jugadas.

El programa mencionado pasado sirve entonces para reproducir la partida de ajedrez solitario, la cual está codificada en un sencillo lenguaje de script, bautizado -no casualmente- como “Ilse” (“Interactive Language for Solitaire Exercises”), es decir, como un guión que se ejecuta línea por línea y así entonces, se va reproduciendo el encuentro en el tablero electrónico. El sistema tiene instrucciones que permiten añadir puntos al ‘score’ de quien está haciendo la prueba de ajedrez solitario, entre otras cuestiones.

Evidentemente el codificar la partida para que quede en el formato que el programa necesita se hace en un editor de textos como notepad, pues es un texto sin formato que contiene las instrucciones que el programa desplegador simplemente interpreta. Así entonces, lo que tenemos es un intérprete de comandos de un sistema basado en guiones, el cual es muy sencillo de programar, con la ventaja de poder añadir nuevas instrucciones cuando éstas se necesitan. Sin embargo, por simplicidad y porque el sistema de ajedrez de esta naturaleza no lo necesita, no hay ciclos iteractivos, es decir, es un archivo de instrucciones lineal, que se lleva a cabo paso por paso, línea por línea.

Después de haber codificado cuatro o cinco partidas, empecé a fastidiarme en lo repetitivo del asunto y me pregunté si no habría una manera más simple de hacer esto. Y más pronto que tarde me di cuenta que necesitaba un programa para editar las partidas, para que así, por una parte se minimizaran los errores de dedo y por otro lado, la tediosa labor de transcripción fuese más sencilla.

hgiyc_gen

El sistema generador de partidas de ajedrez solitario es un editor de textos que contiene todas las instrucciones que el sistema necesita y además, permite jugar en un tablerito electrónico la partida que se quiere codificar, de manera que hace fácil y sencilla la labor de codificación de este tipo de partidas. Cabe señalar que las instrucciones del sistema tienen una sintaxis muy simple y en la medida de lo posible el programa generador automatiza cada una de ellas, indicándole al usuario qué debe poner en un momento dado.

Las instrucciones del sistema empiezan con punto y se escriben en la primera columna de cada línea. Hay instrucciones para mover las piezas, para regresarlas, para asignar puntuaciones, para hacer preguntas al ajedrecista (que está haciendo la prueba) en tiempo real, de manera que se le puedan añadir más puntos si sus respuestas son correctas.

El generador simplemente entra en un “loop” (ciclo iteractivo) y lo termina cuando encuentra la instrucción ‘.end’. Cabe destacar que todas las instrucciones del lenguaje de script están en inglés. La razón es que el trabajo se hizo para una página de ajedrez en Inglaterra y por ende, la codificación de las partidas debía ponérselas de manera fácil a los maestros que en Europa iban a codificar las partidas para el sitio en cuestión. Pero independientemente, la tradición obliga a que los lenguajes de programación, incluso los de scripts, se programen en inglés, pues eso es el estándar y así los que entiendan o tengan bases de programación podrán siempre minimizar la curva de aprendizaje.

El editor está disponible gratuitamente. La única condición es que quien lo use para desarrollar material de ajedrez me mande una copia de sus esfuerzos. He estado pensando en crear un sitio web en donde se puedan subir todos los scripts que quienes usen el editor, escriban. Quien quiera colaborar en esta idea para la web, escríbanme y vemos si podemos hacer algo, por lo demás, el software me lo pueden pedir a mi correo: [email protected].

Comentarios