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 moveaccording to the stored game, as Output Data shows to the user of this Chess Viewer.
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.
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.