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:
-
Juego de ajedrez en Excel entre dos humanos programado sólo con
fórmulas iterativas, sin macros ni VBA.
-
Tablero de ajedrez de 64 casillas con formas redimensionables.
-
Toque de las piezas y casillas con 64 botones de opción vinculados a
una única celda: Square.
-
Normas del enroque corto y largo.
-
Captura del peón al paso.
-
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.
-
Opción para ver la partida desde el lado de las blancas o de las
negras.
-
Opción para ver las referencias de las celdas en notación algebraica
o numérica.
-
Opción para seleccionar el estilo de las piezas del ajedrez
(figurines) o incluso estilo numérico o algebraico.
-
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.
-
Base de datos de las partidas jugadas en la hoja 'NumericGames',
guardada cada partida en una columna.
-
Opción para finalizar una partida por tablas o por rendición y opción
para comenzar un nuevo juego.
-
Panel de visualización de cada uno de los movimientos de la partida
en notación numérica.
-
Traducción del juego a varios idiomas.
Aún queda por resolver:
-
Visualizar los movimientos de una partida guardada en modo
Play.
-
Guardar notación algebraica de las partidas.
-
Guardar notación FEN.
-
Posiciones válidas en el jaque al Rey.
-
Detección de jaque mate.
-
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.
6 Response to "Conversión de Datos 3: Juego de Ajedrez con fórmulas"
Hola Pedro,
Aun que no soy partidario de aplicar todas estas normas a la hora de jugar al ajedrez, me parece impresionante que hayas creado todo este archivo solo con formulas. ¿Dónde está tu límite?
La idea de usar CheckBox asociado a la casilla mezclado con formulas iterativas para guardar la primera casilla tocada me ha parecido excelente, muy ingenioso.
Espero poder jugar algún día, cuando el archivo esté completamente terminado, una partida contigo camarada.
Un saludo amigo.
Amigo VerZul,
Ya veo que no juegas a menudo al ajedrez, porque las normas de una partida, sea de campeonato o no, están para cumplirlas, la primera es "pieza tocada, pieza jugada" y la última es que cada jugador debe escribir la partida en notación algebraica mientras juega, que es algo que le falta a esta versión, ¿te atreves?.
En tu profesión como analista-programador irás viendo que hacen falta muchas normas y reglas que cumplir para dar por finalizado el desarrollo de un producto informático, comenzando por las reglas de estilo y continuando por las reglas de negocio, y por cualquier norma que nos permita gestionar óptimamente a los equipos de codificación, pruebas, etc.
Cuando me propuse hacer el ajedrez sin macros, uno de los problemas era saber la casilla seleccionada para lo que, después de varios intentos, usé OptionButtons (botones de opción), que no son exactamente CheckBoxes (casillas de verificación), que prácticamente no se ven con un Zoom del 20% después de ampliar la altura de las casillas más de 10 veces de su tamaño por defecto. Este truco puede servir como idea para otros juegos, aunque el mejor es usar iteraciones en las fórmulas, lo que permite generar programas sin problemas de instalación en empresas que tengan limitada la habilitación de las macros, ¿me entiendes?
Lo de jugar va a tener que esperar pues ahora estoy enfrascado en otros proyectos muy absorbentes.
Espero que consigas emplear tu tiempo en lo que más desees, incluso en el ambiente informático, que tan depauperado está últimamente.
Un abrazo,
Pedro.
recién veo este blog, me parece un gran esfuerzo. espero que hayas logrado tus metas exitos
Hola Pedro, soy tú compañero de la piscina y tocayo tuyo. Me ha gustado mucho tú blog. Un saludo
Pedro, me alegra que te guste mi blog. Sabiendo que eres un maestro de ajedrez, aquí tienes los 8 artículos que he escrito sobre ajedrez: https://pedrowave.blogspot.com/search/label/ajedrez
Hola de nuevo Pedro, el de la piscina.
Puede que te interese saber que estoy dedicado a preparar un libro Excel para enseñar a jugar al ajedrez, por lo que necesito tu ayuda para probarlo si te apetece y tienes algo de tiempo.
Puedes ver un vídeo introductorio aquí:
Cómo jugar al ajedrez | LinkedIn #ExcelPedroWave
Leave A Reply
Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.