Traducir el blog

Data Conversion 3: Chess Game with formulas

Chess game with iterative formulas


In Excel there is something to those who we like the formulas that takes us out of our squares, when you see a circular reference, because a cell refers to itself in a direct or indirect way, forcing to remove or correct the circular reference or, as is the case in this game, to accept it to work by changing the number of times Excel iterates a formula.

Iteration is the repeated recalculation of a worksheet until a specific numeric condition is met. Excel cannot automatically calculate a formula that refers to the cell — either directly or indirectly — that contains the formula. To use iterative formulas we must change Excel options:
Enable iterative calculation.
Maximum number of iterations = 1 in this game.

Microsoft.com: How to change formula recalculation, iteration, or precision


Rules and norms of the game of chess

The first rule that I have in mind is the classic
Touch-move rule

Using only formulas, how pieces are touched? How do you get the piece touched? How to know the destination square?

The trick has been to insert 64 option buttons from form controls, one for each of the 8x8 = 64 squares of the chessboard, called Square11 to Square88, using the nomenclature of numerical chess notation. They are the 64 forms that are grouped in the Squares, as seen in the image to the right of this text to all forms in the Chessgame sheet.

These radio buttons are not visible through the squares were extended five times and, with a zoom of 20%, the buttons appear to the hinges of the doors of each square box. Each of these buttons takes the size of a square and it is linked to the same cell: Square. Pressing each button generates a different number from 1 to 64, so you know exactly what box is down.

The position of the piece played is stored in the cell: PositionPiece, until you touch a new square that is a valid position of the played piece, if it is found with cell formulas into MirrorSquare and Move.


Chess Game Download

You can download these chess game following this link:



Chess Game Specifications

This game lets you play chess between two humans. No takes a game engine (impossible with formulas in Excel, it would not be effective and bad performance).

Is intended to generate a chessboard with 32 initial pieces to review the moves allowed by the rules of chess and to store games in an Excel spreadsheet to do the database of games played in the NumericGames sheet.

The specifications of the chess game are:

  1. Chess game between two humans programmed in Excel only with iterative formulas, without macros or VBA.
  2. Chessboard of 64 squares as a resizable form with the ability to flip the board on the side of the white or the black pieces.
  3. Touch of the pieces and squares with 64 radio buttons linked to a single cell: Square.
  4. Rules of short and long castling.
  5. En passant pawn capture.
  6. Option to view the game from the side of the white or the black.
  7. Option to view the cell references in algebraic or numeric notation.
  8. Option to select the style of chess pieces (figurines) or numeric or algebraic style.
  9. Option to display the last movement of a piece, its possible legal moves and attack positions of the white or black pieces.
  10. Option to select the chess game number.
  11. Option to start a new game.
  12. Panel to display each of the moves of the game in numeric notation. Algebraic notation will be added later.
Yet to be resolved:
  1. Valid positions in the king check.
  2. Checkmate detection.
  3. Promoting pawns.
  4. Save chess games in algebraic notation.
  5. Save FEN notation.
  6. Translate the game into several languages.
I hope you enjoy and make you enjoy such good times as I have been debugging this chess game.

To further improve this game I wait for your supportive comments.

Conversión de Datos 3: Juego de Ajedrez con fórmulas

Juego ajetreado con fórmulas iterativas
    En Excel hay algo que a los formulianos nos saca de nuestras casillas y es cuando aparece una referencia circular porque una celda se refiere a sí misma de una manera directa o indirecta, lo que obliga a eliminar o corregir la referencia circular o, como es el caso en este juego, a aceptarla para que funcione cambiando el número de veces que Excel itera una fórmula.

    Iteración es el cálculo repetido de una hoja de cálculo hasta que se cumple una condición numérica específica. Para usar fórmulas iterativas se deben cambiar las opciones de Excel:
    Habilitar cálculo iterativo.
    Nº máximo de iteraciones = 1 en este juego.

    Microsoft.com: Cómo aceptar, quitar o corregir una referencia circular



    Reglas y normas del juego del ajedrez

    La primera regla que he tenido en cuenta es la clásica: 
    Pieza_tocada,_pieza_jugada

    Empleando solamente fórmulas, ¿cómo se tocan las piezas? ¿cómo obtener la pieza tocada? ¿como saber la casilla de destino?

    El truco ha sido insertar 64 botones de opción de los controles de formulario, uno por cada una de las 8x8 = 64 casillas del tablero de ajedrez, denominados Square11 a Square88, según la nomenclatura de la notación numéricas del ajedrez.  Son las 64 formas que se agrupan en los Squares, como se puede ver en la imagen a la derecha de este texto con todas las formas de la hoja ChessGame.

    Estos radio-buttons no se ven por estar ampliadas las casillas cinco veces y, con un zoom del 20%, los botones parecen los goznes de las puertas de cada casilla.  Cada uno de estos botones ocupa el tamaño de una casilla y está vinculado con la misma celda: Square.  Al presionar cada botón genera un número distinto del 1 al 64 por lo que se conoce exactamente cuál es la casilla pulsada.

    La posición de la pieza tocada se guarda en la celda: PositionPiece
    hasta que se toca una nueva casilla que sea una posición válida de la pieza tocada si se comprueba con las fórmulas de las celdas: MirrorSquare y Move.


    Descarga del juego del ajedrez

    En este enlace se puede descargar el juego de ajedrez:
    (Descarga desde Google "Excel Download" o Microsoft OneDrive)



    Especificaciones del juego del ajedrez

    Este juego de ajedrez permite jugar entre dos humanos de momento.  No lleva un motor de juego (imposible de hacer con fórmulas en Excel, ya que no sería eficaz y su rendimiento pésimo).

    Se pretende generar un tablero de ajedrez con las 32 piezas iniciales que revise los movimientos permitidos según las reglas del ajedrez y que guarde las partidas en una hoja Excel que haga de base de datos de las partidas jugadas, en la hoja NumericGames.

    Las especificaciones del juego de ajedrez son:

    1. Juego de ajedrez en Excel entre dos humanos programado sólo con fórmulas iterativas, sin macros ni VBA.
    2. Tablero de ajedrez de 64 casillas con formas redimensionables.
    3. Toque de las piezas y casillas con 64 botones de opción vinculados a una única celda: Square.
    4. Normas del enroque corto y largo.
    5. Captura del peón al paso.
    6. Tablero con las piezas del ajedrez en distintos formatos numérico o algebraico en español e inglés y figuras de varias fuentes de texto.
    7. Opción para ver la partida desde el lado de las blancas o de las negras.
    8. Opción para ver las referencias de las celdas en notación algebraica o numérica.
    9. Opción para seleccionar el estilo de las piezas del ajedrez (figurines) o incluso estilo numérico o algebraico.
    10. Opción para visualizar el último movimiento de una pieza, sus movimientos válidos posibles y las posiciones de ataque de las piezas blancas o negras.
    11. Base de datos de las partidas jugadas en la hoja 'NumericGames', guardada cada partida en una columna.
    12. Opción para finalizar una partida por tablas o por rendición y opción para comenzar un nuevo juego.
    13. Panel de visualización de cada uno de los movimientos de la partida en notación numérica.
    14. Traducción del juego a varios idiomas.
    Aún queda por resolver:
    1. Visualizar los movimientos de una partida guardada en modo Play.
    2. Guardar notación algebraica de las partidas.
    3. Guardar notación FEN.
    4. Posiciones válidas en el jaque al Rey.
    5. Detección de jaque mate.
    6. Promoción de los peones.
    Espero que os guste y os haga disfrutar de tan buenos momentos como yo mismo he pasado depurando este ajedrez.  Para seguir mejorándolo espero vuestros comentarios de apoyo.

    Mi lista de blogs