Traducir el blog
Jugando al Rabino en Excel - Parte 7
🔝To translate this blog post to your language, select it in the top left Google box.
Esta es la séptima parte de una serie de artículos con los que intento diseñar en Excel un juego de cartas con una variante especial del Rabino.
Al final de este artículo hay un enlace a todos mis juegos de cartas.
En esta Parte 7 explicaré:
♥️ Cómo combina las cartas el motor del juego.
♠️ Cómo jugar una partida completa.
♦️ Cómo decidir qué carta jugar.
♣️ Qué falta por hacer para finalizar el diseño del juego.
Los tres últimos temas están explicado en el vídeo que acompaña a este artículo.
Esta es la imagen del fin de partida jugada durante la grabación del vídeo de la Parte 7. El jugador Pedro Wave (el usuario de mi versión de Excel) ganó la partida, cerrándola con -10 puntos, pues tenía todas las cartas combinadas. Sus cartas son las de abajo, estando ordenadas de mayor a menor, para poder calcular los puntos de las cartas que pudieran no estar combinadas. En este caso hay 6 cartas del mismo palo, formando escalera descendente de diamantes ♦️, y otras 4 cartas del mismo palo en escalera de corazones ♥️.
Sigo mostrando las cartas de arriba, que son las del jugador contra el que juego, el Rabino en Excel. Lo hago a propósito para mostrar cómo funciona el nuevo motor del juego que he añadido en esta fase del desarrollo de la Parte 7.
Las cartas de arriba han finalizado el juego con los 3 puntos del 3 de picas ♠️. El resto de cartas están combinadas por lo que son de 0 puntos. Lo más curioso es que las cartas no están ordenadas formando combinaciones, aunque realmente están combinadas: 5 cartas formando escalera de tréboles ♣️ y 4 cartas formando escalera de picas ♠️, con el rabino como si fuera el 10 de picas. Luego explico por qué no están ordenadas...
En este vídeo verás la partida completa, que he jugado como ejemplo de lo que se puede hacer hasta ahora en la Parte 7 de esta fase de desarrollo del juego. Prácticamente será como se podrá jugar cuando finalice este diseño, por lo que es conveniente aprender cómo jugar a esta variante del Rabino en Excel.
Cuando veas este vídeo, comprobarás que no soy un buen jugador del Rabino. Y también dudo que sea un buen programador de juegos, pero estoy seguro que todo se aprende practicando, lo que te animo a hacer en cualquier momento del juego incierto de esta vida finita.
A continuación explicaré lo que no he querido contar en este vídeo para no hacer espóiler.
Esta variante del Rabino no la he diseñado en plan profesional sino en plan didáctico, por lo que me he tomado ciertas libertades.
La primera libertad, fundamental desde esta Parte 7 y en adelante, es que uso herramientas propias de Excel para crear el motor del juego, con el que conseguir combinar las cartas de arriba del usuario: Rabino en Excel.
Y como adelantaba en el vídeo: ¡No lo he hecho programando macros VBA!
Y entonces: ¿Cuál es el motor del juego? ¡¡¡ El complemento Solver de Excel !!!
Si aún no conoces el complemento Solver será mejor que antes leas esto:
Resumiendo, y haciendo espóiler, o sea destripando el motor del juego, he usado el complemento Solver para determinar el valor mínimo de la celda que contiene la fórmula con la suma de los puntos de un jugador, después de combinar las cartas, cambiando el valor de otras celdas.
La siguiente imagen es el resultado de aplicar el complemento Solver:
La hoja 'Motor' sirve de motor del juego, valga la redundancia, y contiene bastantes fórmulas complejas que no voy a explicar aquí. Si tienes interés, pregúntame...
En la columna D están las posiciones de las 11 posibles cartas de cada jugador, identificadas con números del 1 al 11.
En la columna E están las cartas según las posiciones determinadas con los valores de la columna D.
Las columnas F a O contienen fórmulas auxiliares con las que determinar las posibles combinaciones de las cartas de un jugador, tanto con escaleras como con cartas del mismo valor.
En la columna P se obtiene los puntos de las cartas que no se han podido combinar.
El total de la suma de puntos del jugador 2, o sea del Rabino en Excel, se obtiene en la celda P14, denominada miSolver, con la fórmula: =SUBTOTALES(9;misPuntosCartas2)
Siendo el rango de celdas misPuntosCartas2: =Motor!$P$3:$P$13
Solver cambia automáticamente los valores de un grupo de celdas, llamadas celdas de variables de decisión, que en este motor del juego están en el rango D3:D13 denominado: miNumCartas2
Solver intenta cumplir 4 restricciones de esas celdas:
- miNumCartas2 = entero
- miNumCartas2 <= 11
- miNumCartas2 >= 1
- miNumCartas2 = Todos diferentes
O sea, que esas celdas sean números enteros del 1 al 11 y diferentes entre sí, sin importar su orden.
En este pantallazo están los parámetros de Solver definidos para el motor de este juego.
Se establece como objetivo la celda denominada miSolver: =Motor!$P$14, para que la fórmula que contiene sea el valor mínimo óptimo.
Los valores del rango de celdas miNumCartas2 son el resultado obtenido por el complemento Solver, con las posiciones de las cartas combinadas según las reglas del juego.
Se ha elegido como método para encontrar una solución: Evolutionary, ya que el solucionador evolutivo prácticamente no hace suposiciones sobre las relaciones entre las variables de decisión y la función objetivo y las restricciones. Aunque puede ser que encuentre una "buena" solución, pero no necesariamente la solución óptima, lo que es suficientemente bueno para nuestro motor de juego, que realmente busca una buena combinación de las cartas, ya que no es un jugador profesional, de momento...
Si quieres saber más sobre los tres tipos de métodos del complemento Solver, abre este enlace en inglés:
Para que el motor del juego sea compatible con todas las versiones de Excel, desde Excel 2010 hasta Excel para Microsoft 365, he tenido que sudar un poco...
Pero todo se ha resuelto leyendo esta página en inglés:
Si escribes código convencional para ejecutar Solver solamente funcionará en tu computadora, y en cualquier computadora con las mismas versiones de Excel y Solver. ¿A que no queremos eso?
Para que Solver funcione en cualquier versión de Excel, no debe haber referencias a una versión concreta, lo que se consigue llamando al método: Application.Run
Este método permite ejecutar dinámicamente cualquier procedimiento de Solver, llamando al nombre del procedimiento entre comillas dobles, seguido de una lista separada por comas de los argumentos que se pasan al procedimiento, ordenados por posición.
El código está incluido en las macros y funciones del módulo: modMotor
- ActivarSolver: Activa y configura el complemento Solver.
- ConfigurarSolver: Configura el complemento Solver.
- ResolverCartas: Resuelve las combinaciones de las cartas de un jugador con el complemento Solver.
- CheckSolverIntl: Chequea si existe el complemento Solver en cualquier versión internacional de Excel.
- IsInstalled: Test si está instalado Solver.
- AddInInstall: Instala el complemento Solver.
He separado la activación del complemento Solver de la resolución del problema con Solver, con lo que solamente hay que llamarlo en dos ocasiones:
- La macro IniciarRabino llama a ActivarSolver, con lo que queda activado y configurado el complemento Solver.
- La macro CombinarCartas llama a ResolverCartas, con lo que ejecuta el complemento Solver, previamente configurado, cada vez que intenta encontrar las posibles combinaciones de las cartas del jugador Rabino en Excel.
Si no se alcanza una solución, en un tiempo prefijado por las opciones (SolverOptions) que veremos a continuación, aparece un mensaje de advertencia y el jugador presionará el botón Continuar o Detener, según le convenga:
NOTA: Cuando se configura Solver, se modifican sus opciones con esta llamada:
Application.Run "Solver.xlam!SolverOptions", 16, , 0.1, , , , , , 99, , , , , , , , , , , , 8
Lo que modifica, de momento y a falta de más pruebas, los siguientes valores en este juego:
- MaxTime: La cantidad máxima de tiempo (en segundos) que Solver empleará para resolver el problema. El valor es un número entero positivo definido a 16 segundos.
- Precision: Un número entre 0 (cero) y 1 que especifica la precisión con la que se deben cumplir las restricciones. El valor está definido a 0.1
- IntTolerance: Un número decimal entre 0 (cero) y 100 que especifica la tolerancia porcentual de optimalidad de enteros. El valor está definido a 99.
- MaxTimeNoImp: Cuando se utiliza el método de resolución evolutiva, la cantidad máxima de tiempo (en segundos) que Solver continuará resolviendo sin encontrar soluciones significativamente mejoradas para agregar a la población. El valor es un entero positivo definido a 8 segundos.
Los argumentos separados por comas y ocupan el lugar descrito en esta página en inglés:
En esta página hay más información del complemento Solver usado con VBA:
Para poder finalizar el diseño del juego aún falta bastante por hacer:
- Ocultar las cartas del jugador Rabino en Excel, que juega las cartas de arriba.
- Decidir automáticamente que ese jugador robe una carta de la pila de descartes o del mazo de cartas.
- Saber qué carta descartar automáticamente.
- Ordenar las cartas combinadas por el motor del juego para el jugador Rabino en Excel.
- Decidir cuándo puede y quiere acabar la partida cualquiera de los dos jugadores.
- Guardar estadísticas con los jugadores que van ganando las series de partidas.
Todo eso lo iremos viendo en las siguientes Partes de este curso sobre el diseño de un juego de cartas en Excel.
Descarga la Parte 7 de una variante del Rabino, compatible con las versiones de escritorio desde Excel 2010 hasta Excel para Microsoft 365.
- Sites Google Drive: RABINO - PW7.xlsm
Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:
Las macros de Internet están bloqueadas de forma predeterminada en Office - Deploy Office | Microsoft Learn
Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.
Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.
Las macros VBA no están protegidas, por lo que puedes analizarlas. Las hojas están protegidas con una contraseña que es fácil conocer, pues está guardada en VBA escrita en la constante: sContra.
ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:
Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0
En este enlace encontrarás todos mis juegos de cartas programados en Excel:
Me ayudarás si me indicas las erratas que encuentres en este artículo, y si me comentas qué es lo que te gustaría ver en los próximos artículos.
Mi lista de blogs
-
Jugando al Rabino en Excel - Parte 7 - 🔝*To translate this blog post to your language, select it in the top left Google box. * Parte 7 de un juego del Rabino Esta es la séptima parte de ...Hace 18 horas
-
CREAR APP PARA LEER CÓDIGOS QR Y GUARDAR FECHA DE ESCANEO - Hola a todos! Hace casi un mes publicaba cómo podíamos hacer una App que fuese capaz de leer los códigos de barras: CREAR APP PARA … La entrada CREAR AP...Hace 2 días
-
Calendario 2025 Excel: Imprime, Personaliza y Organiza tu Año - Calendario 2025 Excel ya puedes descargar la plantilla para imprimir gratis. En formato hoja de cálculo Excel. Escribe a hola@excelcontabilidadytic.com y...Hace 2 días
-
Sumas de potencias consecutivas - Existen fórmulas para sumar las primeras potencias de números naturales. Son populares las de la suma de potencias con los primeros exponentes. En esta c...Hace 6 días
-
FREE Calendar & Planner Excel Template for 2025 - Here is a fabulous New Year gift to you. A free 2025 Calendar Excel Template with built-in Activity planner. This is a fully dynamic and 100% customizabl...Hace 6 días
-
Secretos de Excel que ni los Expertos Dominan – PARTE 1 - Hace poco, en un Live con mi amigo Gerson Pineda, caímos en la cuenta de algo interesante: hay detalles en […] The post Secretos de Excel que ni los Expe...Hace 1 semana
-
Scipy update and Linalgfuncs speed check - I have updated the Scipy code to remove repeated loading of the Numpy code, and to fix a number of other warnings from the pyxll log file. I have also upda...Hace 1 semana
-
Debra’s Excel News–December 2024 - Fix a column header problem, QAT tips, and more, in this month’s Excel news. Visit my Excel website for more tips, tutorials and videos, and check the inde...Hace 2 semanas
-
5 Ways To Show All Notes in Microsoft Excel - Are you wondering how to show all notes in Excel? To unlock all the secrets of Microsoft Excel worksheet notes, keep reading! Managing notes in Excel can f...Hace 5 semanas
-
Color, Conditions, and Copilot: How to save time using conditional formatting with Copilot in Excel - Hi everyone, this is part 11 in a series of posts to show you some of the things that are possible to do with Copilot in Excel. *What is conditional f...Hace 1 mes
-
4 ejemplos de utilización de validación de datos con fórmulas - Ya sabes que la herramienta de Validación de datos es de gran utilidad para controlar y restringir la introducción de datos y así, asegurarte de…Hace 3 meses
-
Trucos de Excel: Referencias Relativas, Absolutas y Mixtas Explicadas ✨ [VIDEO] - ¡Hola a todos! Hoy hablaremos sobre un tema muy importante para quienes usan Excel: los tipos de referencia. Las referencias son fundamentales al momento d...Hace 3 meses
-
How To Predict Bearing Life With Excel - When you work in mechanical engineering, understanding the reliability and performance of bearings under various conditions is crucial. Bearings are the co...Hace 3 meses
-
-
Minutos de juego y puntos. El Espanyol, sus finales de partido y mis enfados - Pienso que el Espanyol este 2024 se está dejando muchos puntos al final de los partidos. Cuando el ... Leer más » The post Minutos de juego y puntos. El ...Hace 8 meses
-
TikTok’s search evolution - 2 in 5 Americans use TikTok as a search engine. Nearly 1 in 10 Gen Zers are more likely to rely on TikTok than Google as a search engine. More than half of...Hace 9 meses
-
MASTERCLASS Gratis – Gráfica de Gestión Proyectos en #EXCEL. - Aprende a crear un Gráfico de CURVA S, ideal para GESTIÓN DE PROYECTOS, porque te permite identificar como esta tu proyecto tanto en COSTOS como en TIEMP...Hace 10 meses
-
Demos cursos de Excel 2007, 2010, 2013, 2016, 365 - Puedes consultar las demostraciones de los siguientes capítulos de los cursos Excel. Demo cursos ExcelHace 11 meses
-
Unblocking and Enabling Macros - When Windows detects that a file has come from a computer other than the one you're using, it marks the file as coming from the web, and blocks the file....Hace 1 año
-
Office Scripts: Trabajando con Tablas - [image: Office Scripts: Trabajando con Tablas] Me he dado cuenta que últimamente solo escribo de lenguaje M (es mi pequeño vicio)... pero hay que liberar l...Hace 1 año
-
Hello world! - [image: Hello world!] Welcome to WordPress. This is your first post. Edit or delete it, then start writing!Hace 2 años
-
La importancia de saber mecanografía en 2022 - [image: Resultado de imagen de mecanografía viñeta escribiendo a máquina] Según la RAE, la mecanografía es el arte de escribir a máquina. Hace unos cuantos...Hace 2 años
-
London Excel Meetup Workbooks - The workbooks used in my presentation on “Analytical and Interactive Dashboards in Excel” at the London Excel Meetup, September 3, 2020Hace 4 años
-
Cálculo de jornada que termina al día siguiente (Power Query) y despedida - [image: Cálculo de jornada que termina al día siguiente (Power Query) y despedida] Este blog se ha ocupado de cálculos de tiempo con bastante intensidad, c...Hace 4 años
-
Agenda Perpetua Excel Calendario Perpetuo - Saludos a los ingenieros y a todos los que forman parte de nuestra comunidad de planillas Excel para ingeniería civil, ya se vienen las fiestas navideñas y...Hace 5 años
-
International Keyboard Shortcut Day 2019 - The first Wednesday of every November is International Keyboard Shortcut Day. This Wednesday, people from all over the world will become far less efficient...Hace 5 años
-
Welcome, Prashanth! - Last March, I shared that we were starting to look for a new CEO for Stack Overflow. We were looking for that rare combination of someone who… Read more "W...Hace 5 años
-
Visualize parts and whole - combine clustered column and stacked column charts - *Inga: Disa what?* *Igor: -ppeared.* by The FrankensTeam ------------------------------ Really it was 3 years ago we posted our last article? *Freddy: Th...Hace 5 años
-
Salvador Sostres, analfabeto profesional - Los nuevos tiempos traen nuevas profesiones. Internet, además, ha revolucionado el mundo del periodismo y la palabra escrita. Adaptarse o morir, ese es el ...Hace 6 años
-
Planificación de compras - Realizar una lista con los productos que necesitamos y que formarán parte de nuestra cesta de la compra nos ayuda a *encontrar la combinación de bienes p...Hace 12 años
-
-
-
-
-
-
-
-
-
No Response to "Jugando al Rabino en Excel - Parte 7"
Leave A Reply
Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.