Traducir el blog

Conversión de Datos 1: Visor de Ajedrez en Excel

Introducción a la Conversión de Datos

Todas las entradas sobre Conversión de Datos:
  1. Conversión de Datos 1: Visor de Ajedrez en Excel
  2. Conversión de Datos 2: Instrucciones del Visor de Ajedrez
  3. Conversión de Datos 3: Juego de Ajedrez con fórmulas
Una buena interfaz gráfica de usuario no se crea de la nada. Cualquier interfaz gráfico de usuario necesita una gran cantidad de procesos de conversión de datos antes de que se puedan mostrar los gráficos y, por supuesto, requiere de muchos interfaces antes de que pueda ser de utilidad a los usuarios finales.

Desde el momento en que las entradas se introducen en un programa o sistema, se requieren varios procesos de conversión para obtener la salida deseada. A través de etapas intermedias se convierten los datos, de una notación en otra, usando interfaces de comunicación entre los diferentes procesos y almacenando temporalmente los datos en diferentes formatos.

Lo más fácil es cuando todas las entradas posibles son conocidas de antemano, pero la realidad es que no es así. El escenario habitual se da cuando no existe un formato exacto de los datos de entrada pero se debe tomar la acción apropiada para que no pase que los datos de entrada no sean reconocidos por el proceso de conversión de datos, lo que impediría obtener los datos de salida correctos.

Se debe tener mucho cuidado de que esta situación no ocurra, y que todas las entradas sean predecibles y esperadas, y que todos los procesos de conversión de datos sean exactos, generando siempre las mismas salidas, cuando se produzcan las mismas condiciones de entrada.

Si las especificaciones de conversión de datos son secretas, los procesos de conversión se comportarán como una caja negra de la que sólo se conocen los datos de entrada y los datos de salida. Si las especificaciones son abiertas, usted puede aprender de los métodos de conversión y mejorarlos, aún sin ser el autor de las mismos.


Ejemplo de Visor de Ajedrez en Excel

Como un ejercicio de conversión, abierto a la comunidad de usuarios de Excel, he diseñado un Visor de Ajedrez en Excel sin macros, para los aficionados y amantes como yo de ambos mundos maravillosos.

Los datos de entrada son la notación algebráica de un juego de ajedrez, convertido en primer lugar en la notación numérica que finalmente se convierte, mediante una interfaz, en un gráfico que representa el tablero de ajedrez en el que las piezas de ajedrez se mueven de acuerdo con el juego guardado y, como datos de salida, muestra al usuario este Visor de Ajedrez.



Esta idea se me ocurrió leyendo un artículo del Excel Hero Blog acerca de un Visor de Partidas de Ajedrez en Excel 2007, realmente impresionante y una solución inteligente, especialmente por no usar nada de VBA para implementarlo.  Se puede ver el resultado en: Excel Hero Chess Game Viewer

Este Visor de Partidas de Ajedrez creado por Daniel Ferry se basa en la Notación Numérica ICCF, que supone la ventaja de utilizar una máquina de estados como entrada a una tabla dinámica. Esto nos da la posibilidad de ver los movimientos de una partida de ajedrez hacia adelante y hacia atrás. Los movimientos de las piezas de ajedrez son convertidos partiendo de una notación numérica. Los movimientos se designan con cuatro dígitos - los dos primeros son el código de la casilla de la pieza que se mueve y los dos últimos son el código de la casilla de destino.

La novedad de mi planteamiento de un Visor de Ajedrez es que las partidas de ajedrez se introducen por medio de la Notación Algebraica, aunque su uso puede provocar confusión a las máquinas, e incluso a las personas humanas siguiendo la notación de movimientos diseñada para los seres humanos. Las notaciones de movimiento para las computadoras son menos complejas de utilizar y convertir. Las piezas de ajedrez tienen diferentes nombres e iniciales en lenguas diferentes y este visor es capaz de entender 50 idiomas diferentes, incluidos los símbolos gráficos denominados figurines, como se pueden ver en la nube:


La versión subida a la nube es completa pero sin controles gráficos ya que Microsoft Excel Web App sólo admite archivos .xlsx, sin VBA ni macros. La versión completa con controles gráficos te la puedes descargar desde el siguiente enlace.
(Descarga desde Google Drive o Microsoft OneDrive)


ATENCIÓN: No dejes de leer la siguiente entrada con las instrucciones de uso desde aquí: Conversión de Datos 2: Instrucciones del Visor de Ajedrez

En la hoja de arriba de Excel Web App, cambia el valor de la entrada de la celda J10 (en amarillo) para mover las piezas del juego de ajedrez que se selecciona con la celda K1 de la hoja Database,  y que contiene algunas partidas de ajedrez guardadas en ella, como:
1 - The Inmortal Game
2 - The Evergreen Game
4 - Kasparov versus the World

En esta hoja se pueden almacenar más de 250 partidas de ajedrez.

En próximos artículos me propongo escribir una explicación de cómo me las  ingenié para convertir la notación algebraica de los movimientos de las piezas sobre el tablero, sin el uso de macros, sólo usando fórmulas de Excel para obtener los estados de cada movimiento en notación numérica, de conformidad con las reglas del ajedrez (como la regla de "captura al paso"), fácilmente traducibles en posiciones en el tablero de ajedrez con sus piezas representadas por los símbolos de ajedrez como caracteres Unicode, llamados "figurines", sin ningún tipo de imágenes externas, obteniendo una interfaz gráfica de usuario que nos permite mostrar un buen visor de dos dimensiones de ajedrez.


ATENCIÓN: No dejes de leer la siguiente entrada con las instrucciones de uso desde aquí: Conversión de Datos 2: Instrucciones del Visor de Ajedrez

Data Conversion 1: Chess Viewer in Excel

Introduction to Data Conversion

A good Graphical User Interface does not appeared from nowhere. GUI needs a lot of data conversion processes before it can display graphics and, of course, it requires many interfaces before it can prove useful to end users.

From the moment that inputs are introduced in a program or system, some conversion processes will be required to obtain the desired output. Through intermediary stages, data is converted from a notation to another, using communications interfaces between different processes and storing temporal data into different formats.

The easiest is when all possible inputs are known beforehand, but the reality is not that and normally the usual scenario is when there is no exact format of the input data, but the appropriate action must be taken which should prevent the input data are not recognized by the data conversion process to obtain the correct output data.

It should be very careful that this scenario does not happen, and that all entries are predictable and expected, and all data conversion processes are accurate, always generating the same output when the same conditions of input data occur.

If data conversion specifications are secret, conversion processes behave as a "black box" where you only know the input and output data. If the specifications are open, you can learn from the methods of conversion and improve them even without being the author thereof.


Example of Chess Viewer in Excel

As an exercise of conversion, open to the community of Excel users, I have designed a Chess Viewer in Excel without macros, for fans and lovers of both wonderful worlds like me.

Input Data is the Algebraic notation of a chess game, converted first into Numeric notation that is finally converted, using an interface, into a graphic chessboard in which the chess pieces move according to the stored game, as Output Data shows to the user of this Chess Viewer.


This idea coming to me reading an article from the Excel Hero Blog about an Excel 2007 Chess Game Viewer, very impressive and smart solution especially not using any VBA to implement it.


This Chess Viewer by Daniel Ferry are based on ICCF Numeric Notation and it showcases the advantage of using a state machine as input to a dynamic chart. This gives us the ability to view a game forward and backwards. The movement of chess pieces are converted from a numeric notation. Moves are designated with four digits – the first two are the code for the square of the piece that is moving and the last two are the code for its destination square.

The novelty of my approach of a Chess Viewer is that chess games are introduced by the Algebraic Notation, although their use can lead confusion to the machines, and even to human people with move notation for humans, since different languages have different names and initials for the chess pieces, which still I have not solved but it is on my agenda.  It is less complex to use move notations for computers.


The version uploaded to the cloud is complete but without graphic controls because Microsoft Excel Web App only admit .xlsx archives, without VBA and  without macros.  You can download my full Excel Chess Viewer version from here.



Change the entry value in cell J10 (in yellow) to move the pieces of the chess game selected with cell K1 from the Database sheet with some chess games stored, as:
You can store more chess games into this Database sheet.

In future articles I plan to write an explanation of how I managed to convert algebraic notation in movements of the pieces on the chessboard without using macros, only using formulas to obtain the states of each movement in numerical notation,  in compliance with the rules of chess (as "en passant" rule), easily translatable into positions on the chessboard being represented by chess symbols in Unicode characters, named figurines, without any external images, obtaining a graphical user interface that allows us to display a nice two-dimensional chess viewer.

In the next article: Data Conversion 2: Chess Viewer Instructions

Mi lista de blogs