En este artículo hablaré del segundo problema, que me impide crear código
personalizado para insertar archivos Excel en mi blog, sin la posibilidad de
interactuar con ellos.
Lo que es un grave problema, pues suelo insertar Excel en mi blog como
herramienta didáctica de lo que se puede hacer con Excel, sobre todo
dirigido a los lectores de mi blog que aún no han instalado Excel en sus
equipos, para que se animen a instalar esta potente herramienta multiusos y
para que la usen en su día a día.
En esta imagen animada se muestras los dos problemas con OneDrive:
Vídeo con los problemas de OneDrive
En este vídeo explico los problemas detectados en Microsoft OneDrive:
Problema 2: Errores en la nube de OneDrive
El problema 2 impide compartir archivos Excel desde la nube de OneDrive, si
se han insertado de forma personalizada, que es lo habitual en mi blog.
Dentro de cualquier artículo, en el que hay un Excel insertado, avisa que:
No se puede cargar este elemento ahora.
Si con mi usuario de Microsoft 365 abro el enlace: No se puede cargar este elemento ahora. No abre ningún archivo, sino que abre la carpeta de Inicio de OneDrive.
Esto solamente me ocurre desde hace dos meses con mi usuario de la
suscripción a Microsoft 365. No me ocurre cuando no tengo abierta la sesión
con mi usuario, tampoco cuando uso otro usuario, o cuando abro el blog en un
navegador dentro de una ventana de incógnito o en privado.
Este caso no es un problema para los visitantes de mi blog, pues ven el
elemento insertado dentro de los artículos del blog, por ejemplo el Excel
incrustado con el que pueden interactuar.
Pero este problema afecta sobre todo a la manera de insertar los archivos
Excel en mi blog, lo que si es un problema para mis lectores, ya que no me
resulta tan fácil seguir escribiendo artículos con archivos Excel
incrustados en mi blog...
Pero al intentar personalizar la inserción de un archivo Excel en un blog o
una página web crea una etiqueta <iframe> errónea.
Si selecciono un archivo Excel para crear el código con el que insertarlo en
mi blog, por ejemplo genera este código:
que es válido, pero únicamente sirve para insertar el archivo
¡sin ninguna personalización!
En la imagen hay un enlace para:
Personalizar la forma en que este libro insertado se mostrará a otros
usuarios
Haciendo clic en ese enlace, se abre una ventana para personalizar la
inserción de un archivo en un blog o en una Web, y ahí se refleja el
problema 2 en toda su extensión.
En la imagen de la derecha hay un ejemplo de la ventana para personalizar la
inserción del archivo, con la posibilidad de modificar lo siguiente:
Qué se mostrará
Apariencia
Interacción
Dimensiones
Lo interesante es poder personalizar la Interacción para:
Permitir que los usuarios ordenen y filtren los datos
Permitir que los usuarios escriban en las celdas (sus cambios no se
guardarán)
Comenzar siempre con esta celda seleccionada
Con la personalización seleccionada en la imagen anterior, se genera el
siguiente
Código para insertar:
PROBLEMA: Este código no hace referencia al archivo Excel, ya que aparece un
interrogante como origen (source) del archivo: src="?
Si se quiere Ver en tamaño real, aparece el mensaje: Not Found
Este segundo problema tiene mucha relación con el primer problema detectado,
pues los dos problemas ocurren desde hace unos dos meses, y lo que ahora es
un interrogante (src="?) antes era un identificador del archivo
Excel, que ahora no deja descargar.
Como ejemplo usaré el mismo artículo del primer problema:
y la referencia a ese identificador ha desaparecido en el código generado
para personalizar la inserción del archivo Exel, con lo que no se puede
insertar de forma personalizada en mi blog...
He denunciado el problema al Soporte de Microsoft OneDrive
Hace dos meses denuncié de forma privada este problema al Soporte de
Microsoft OneDrive, ¡y aún estoy esperando respuesta!, por lo que lo publico
aquí por si alguien del equipo de desarrollo de OneDrive se digna atender
este problema...
El viernes volví a communicar el problema y ayer domingo me contactó un
miembro del
Soporte Técnico de Microsoft OneDrive, pidiendo más pantallazos y
una grabación de "mi problema", que comparto aquí:
Cuando me conteste prometo publicar un nuevo artículo sobre los problemas de
OneDrive.
Mientras tanto, intentaré crear un código personalizado con la fuente
(source - src) correcta, como workaround, como una solución alternativa para
poder seguir insertando archivos Excel en mi blog, que creo que pueden
seguir siendo útiles para mis lectores como herramienta didáctica.
También he escrito un comentario en la
Comunidad de MS OneDrive en inglés, por si lo quieres votar, a ver si
Microsoft revierte pronto el error en el código generado al personalizar un
archivo insertado:
En este artículo hablaré del primer problema. Reservo un nuevo artículo para
el segundo problema.
Las evidencias de estos dos problemas están en cualquier artículo de este
blog en los que aparezca uno de estos avisos, como muestra esta imagen
animada:
Estos problemas son muy frustrantes para mí, pues me obligan a reeditar casi
todos los artículos de mi blog, que son más de 300, para cambiar los enlaces
de descarga desde OneDrive, y para cambiar la forma de insertar archivos
desde OneDrive.
¡¡¡ Lo que es un verdadero latazo para cualquier bloguero !!!
Como no tengo ninguna esperanza de que Microsoft los solucione pronto,
explicaré estos dos problemas, los pasos que he seguido para denunciar el
problema a Microsoft, la solución alternativa (workaround) que me he
propuesto para la resolución de cada problema y el plan para resolverlo tan
pronto como me sea posible.
Sirva esta publicación como denuncia pública a Microsoft, por si a alguien
más le ha pasado lo mismo, ya que aún no he recibido ninguna respuesta de la
denuncia privada que puse hace un mes a Microsoft...
Vídeo con los problemas de OneDrive
En este vídeo explico los problemas detectados en Microsoft OneDrive:
Problema 1: Enlaces rotos en OneDrive
Para descargar los archivos Excel, que uso de ejemplo en los artículos de mi
blog, hay dos enlaces diferentes según la fecha de publicación del artículo.
En las publicaciones de hace años, la descarga se hace desde Google Drive,
con el botón: Excel Download, o desde el enlace a Microsoft OneDrive, por ejemplo desde este artículo:
Los enlaces a Google Drive permiten descargar los archivos sin problemas.
¡Bien hecho Google Drive!
El problema está en los enlaces de descarga desde el enlace a Microsoft OneDrive pues, desde hace un par de meses, no permite la descarga apareciendo
este mensaje:
Es posible que este elemento no exista o que ya no esté disponible
Es posible que alguien haya eliminado el elemento, que éste haya
caducado o que no dispongas de permiso para verlo. Ponte en contacto con
el propietario del elemento si deseas obtener más información.
No se por qué avisa OneDrive que el archivo es posible que no exista o
no esté disponible, ¡cuando sigue estando en mi carpeta pública de
OneDrive y disponible para su descarga!
¿Cómo descargaba hasta ahora los archivos desde OneDrive?
Vamos a verlo con el artículo del blog más leído últimamente:
Pero, como puedes comprobar si pinchas en este enlace, ahora genera el
mensaje de aviso comentado más arriba y no se descarga desde OneDrive...
¿Qué problema tiene el enlace de descarga a OneDrive?
El problema es que esos enlaces han funcionado durante casi 15 años hasta
que, hace unos dos meses, Microsoft cambió el identificador comentado para
que no se pudiera usar para descargar archivos...
Lo que tengo claro es que no puedo denunciar a OneDrive por la rotura de los
enlaces, ya que la forma de descargar archivos con dicho identificador no es
la tradicional con la que se comparten los enlaces de descarga en OneDrive,
que es con un enlace como éste:
Este enlace obliga a descargar manualmente el archivo, además de ser único
para cada archivo que se comparte, con lo que hay que generar uno distinto
por cada enlace de descarga de cada uno de los más de 300 artículo del
blog...
¿Cómo resolver el problema con los enlaces a OneDrive?
La solución pasa por modificar ese enlace, modificando uno a uno todos los
artículos del blog, cosa que no voy a hacer, ¡de momento!
No sólo eso, en los nuevos artículos que publique a partir de ahora,
solamente se podrá descargar de Google Drive, por si Microsoft OneDrive algún día vuelve a permitir enlaces con el
identificador comentado antes...
Buscador de artículos del blog afectado por este mismo problema
¡Vaya casualidad! Hoy hace justo dos años, publiqué un
Buscador de mis artículos de Excel que está desactualizado, pero que
permitía la descarga directa de cualquier archivo del blog desde este
archivo Excel:
Se hacía desde la columna J, que contenía el identificador del
Enlace a la descarga del archivo.
Como la técnica empleada es la misma que el problema que denuncio ahora,
pues uso el identificador de cada archivo, también se han roto las descargas
de mi buscador.
Lo que me obligaría a editar el buscador, copiando uno a uno todos los
enlaces de descarga rotos, ¡lo que no es uno de mis propósitos para este
año!
Problema 2: Errores en la nube de OneDrive
El segundo problema, derivado del actual comportamiento del identificador de
los archivos públicos en OneDrive, da para escribir otro artículo:
🔝To translate this blog post to your language, select it in the top left
Google box.
NUEVA REVISIÓN: A 6 de febrero de 2025, he subido una nueva revisión del juego con
algunas correcciones de problemas y mejoras en el motor del juego.
AVISO:
En la red hay muchos juegos de cartas, escritos por ejemplo en Java o
Python, pero al intentar descargarlos mi antivirus detecta amenazas en los
ejecutables y los pone en cuarentena, pues son un riesgo para mi equipo.
Pero esto no te pasará si descargas
¡¡¡ mi juego del Rabino en Excel !!!
Un juego del Rabino en Excel
Esta es la entrega final de una serie de artículos con los que he intentado
diseñar en Excel un juego de cartas con una variante especial del
Rabino.
Ya me dirás si lo he conseguido.
La variante que he programado es el Rabino que me enseñó mi padre
cuando yo era un niño, y es el Rabino que juego muchas tardes con mi
esposa. A los dos les dedico este entretenido juego.😘
En este enlace encontrarás todos los juegos de cartas que he programado en
Excel:
La nueva funcionalidad de esta última entrega es poder jugar una serie de
partidas, hasta que un jugador sobrepase los 100 puntos, con lo que perderá
la serie de partidas, o hasta que un jugador cierre con una
Escalera Real, en cuyo caso ganará la serie de partidas del Rabino.
En la imagen se muestran los resultados de las últimas partidas, y cuántas
series de partidas ha ganado cada jugador.
¡Vaya!
¡El Rabino en Excel me lleva ventaja!
¡Tengo que seguir retándolo a jugar más partidas!
Vídeo del juego del Rabino
En este vídeo verás la estadística de puntos de algunas de las muchas
partidas que he jugado contra el Rabino en Excel, para así
probar el motor del juego.
Cómo ganar una serie de partidas
Esta variante del Rabino no la he diseñado en plan profesional sino en plan
didáctico, aunque he intentado ser lo más fiel posible a la manera de jugar
entre dos jugadores.
Una serie de partidas las gana el jugador:
Que cierra con una Escalera Real, con las 10 cartas combinadas en
una sola escalera del mismo palo.
Si al sumar los puntos de la última partida, el otro jugador
sobrepasa los 100 puntos en el total de la serie que se está
jugando.
Qué datos se guardan de cada partida
Cuando acaba una partida se guardan sus datos:
Fecha y hora
Puntos de cada jugador.
Total de puntos de cada jugador de la serie de partidas.
Si uno de los jugadores gana la serie de partidas, esa partida se colorea
con un verde más oscuro, añadiendo un juego más a ese jugador.
Cómo ver los resultados de las partidas
Los datos se guardan en la hoja 'Juegos', con la macro del
módulo modJuegos:
AnotarPuntos: Anota los puntos del juego a partir de la fila
21 de la hoja 'Juegos'.
En la celda D18 está el total de las partidas jugadas.
En las celdas D3 y J3 están las series de partidas ganadas por cada jugador.
Para ver estos datos en la hoja 'Tapete' se usa la macro:
MostrarJuegos: Muestra u oculta los juegos de las partidas
jugadas en una forma (shape) de Excel, creada con la
cámara de Excel.
TRUCO:
Con esta macro se consigue crear una imagen estática de las partidas
jugadas, escribiendo por segunda vez la fórmula sin rangos:
Selection.Formula = ""
Con lo que se consigue mejorar el rendimiento del juego, pues si se mantiene
la fórmula de la cámara de Excel, la imagen es dinámica y se refresca y se recalcula continuamente. Por eso
hay que igualar la fórmula dos veces, una con el rango de la foto y otra sin
nada, como se ve en este código:
Qué falta por hacer
Para poder finalizar el diseño del juego aún falta bastante por hacer:
Ajustar y optimizar el motor del juego, hecho con el complemento Solver.
Corregir los defectos del juego y seguir mejorándolo.
Documentar el juego profesionalmente...
Barajar de forma menos aleatoria, pues la mayoría de los humanos no somos
tan variables, y creo que nos gusta la rutina...
Que el Rabino en Excel cierre alguna vez con Color o con
Escalera Real, lo que es muy improbable que ocurra ahora...
Colocar las cartas de los dos jugadores en un arco, como si las tuvieras
en la mano...
Poder jugar dos humanos en remoto...
Cualquier cosa que se te ocurra añadir a este juego de cartas, y seas
capaz de programarlo, ya sea modificando las fórmulas de Excel o cambiando
el código en VBA...
Algún día puede ser que me dedique a ello. De momento, prefiero dejar
las cartas a un lado, pues ya le he dedicado más de 3 meses al diseño de
este juego del Rabino y quiero hacer otras cosas...
Descarga un juego del Rabino en Excel
Descarga esta variante del Rabino, compatible con las versiones
de escritorio desde Excel 2010 hasta Excel para Microsoft 365.
Las macros del archivo descargado están bloqueadas por defecto. Para
desbloquear las macros debes modificar las Propiedades del archivo
siguiendo estas instrucciones:
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:
♣️ Qué falta por hacer para completar el desarrollo de este juego.
La principal novedad de esta entrega es que el motor del juego decide
automáticamente cuándo acabar la partida, indicando qué jugador ha cerrado y
los puntos de cada jugador, además de mostrar las cartas del jugador
Rabino en Excel, que son las cartas de arriba ocultas durante la
partida.
Vídeo con la Parte 9 del juego
En este vídeo verás una de las muchas partidas que he jugado contra
el Rabino en Excel, y así probar el motor del juego.
Cuándo decide Excel acabar la partida
Esta variante del Rabino no la he diseñado en plan profesional sino en plan
didáctico, aunque estoy intentando ser lo más fiel posible a la manera de
jugar entre dos jugadores.
En esta Parte 9 ya se puede jugar una partida completa, y es el motor del
juego el que decide si se cumplen las condiciones para acabar la partida,
según las reglas del juego que están escritas en la hoja 'Ayuda'.
La nueva función: TestFinPartida, detecta si se puede acabar la
partida en curso cerrando el primero de los dos jugadores que puede:
1) Cerrar con Escalera Real, asignando -100 puntos si las 10 cartas
son del mismo palo y forman una sola escalera.
2) Cerrar con Color, asignando -25 puntos si las 10 cartas son del
mismo palo y no están todas combinadas.
3) Cerrar con -10 puntos, si las 10 cartas están combinadas según
las reglas del juego.
4) Cerrar con 1, 2 o 3 puntos, si hay 9 cartas combinadas y una
carta sin combinar, esta carta debe ser un as (1), un dos (2) o un tres
(3), asignando los puntos de la carta no combinada.
Al jugador que no ha cerrado se le asigna la suma de los puntos de las
cartas sin combinar.
El jugador Rabino en Excel, con las cartas de arriba, avisa del
cierre con un mensaje.
Al jugador con las cartas de abajo se le pregunta si cierra ya o si sigue
jugando. Por ejemplo, para mejorar el cierre del jugador humano, en lugar de
cerrar con 3, 2 o 1 puntos, podría intentar cerrar con -10 puntos. O también
podría intentar cerrar con Color (-25 puntos) o con
Escalera Real.
En el momento en que se decide finalizar la partida, se muestran las cartas
de la fila de arriba del jugador Rabino en Excel, que estaban ocultas
porque son las cartas de nuestro contrincante. Esto se consigue llamando a
la macro: MostrarJugador2
La función TestFinPartida se apoya en varias celdas de la
hoja 'Motor'.
Nuevas celdas en la hoja 'Motor':
Celda B15 - miCartaMarcaPila: Vale 1 si el motor del juego ha elegido
una carta de la pila. Vale 0 si ha elegido una carta del mazo oculto.
Celda B17 - miFinJugador2: Fórmula con los puntos para tomar la
decisión de cerrar el jugador 2: Rabino en Excel.
Celda B18 - miFinJugador1: Fórmula con los puntos para tomar la decisión
de cerrar el jugador 1: Usuario de Excel.
Celda B20 - misPuntos2: Vale 1 si muestra los puntos del jugador 2.
Celda B21 - misPuntos1: Vale 1 si muestra los puntos del jugador 1.
Celda B22 - misPuntos0: Vale 1 si muestra los puntos del jugador 1
siempre y del jugador 2 cuando acaba la partida.
Columna R: Fórmulas para averiguar si un jugador cierra con Color,
con las 10 cartas del mismo palo.
Columna S: Fórmulas para averiguar si un jugador cierra con
Escalera Real.
Columna T: Fórmulas para controlar el buen funcionamiento del motor del
juego, si todas las celdas valen 0. Será erróneo si alguna celda es mayor
que cero.
Cómo elegir la carta comodín
Antes de comenzar una partida se puede elegir la carta comodín: Rabino o The Jolly.
Haciendo clic en la figura de un comodín se cambia al otro comodín mediante
la macro: ElegirRabino
Solamente se permite elegir el comodín antes de iniciar la partida, tal y como se muestra en la imagen animada de la derecha, pues
durante la partida no se ve el comodín.
El cambio de comodín se hace en la celda N2 (miRabino) de la hoja
'Baraja'.
Cómo ver u ocultar los puntos
Haciendo clic en la celda BO1 con un cero (0) se ven u ocultan los puntos de
cada jugador, llamando a la macro: VerPuntos
Los puntos de las cartas de arriba solamente se ven al finalizar la partida,
para no dar pistas durante la partida de las cartas combinadas por el motor
del juego para el jugador Rabino en Excel.
Qué falta por hacer
Para poder finalizar el diseño del juego aún falta bastante por hacer:
Guardar estadísticas de las partidas jugadas.
Obtener el ganador de una serie de partidas.
Ajustar y optimizar el motor del juego con el complemento Solver.
Corregir los defectos del juego y seguir mejorándolo.
Los dos primeros puntos los veremos en la próxima entrega, que será la
última de este curso sobre el diseño de un juego de cartas en Excel. Los
otros dos puntos los dejo para más adelante...
Descarga la Parte 9 de un Rabino en Excel
Descarga la Parte 9 de esta variante del Rabino, compatible con las
versiones de escritorio desde Excel 2010 hasta Excel para Microsoft 365.
Las macros del archivo descargado están bloqueadas por defecto. Para
desbloquear las macros debes modificar las Propiedades del archivo
siguiendo estas instrucciones:
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:
♥️ Que ya se puede jugar una
partida completa contra el motor del juego.
♠️ Que Excel ya decide automáticamente qué carta jugar, marcando en
un marco amarillo una carta del mazo o de la pila de descartes.
♦️ Que el motor del juego también
decide qué carta tirar a la pila de descartes.
♣️ Cómo saber qué cartas ha combinado el motor del juego.
Si ves esta imagen es que algo ha fallado. La conseguí mientras hacía
pruebas para marcar la carta que ha decidido jugar el
Rabino en Excel, obtenida por el motor del juego, que es una
combinación del complemento Solver y de código VBA.
Durante el juego, cuando le toque jugar a las cartas de arriba quedará
marcada la carta a jugar con un marco de color amarillo, y solamente será
marcada una carta, que será la que hay que jugar.
El motor del juego decide automáticamente qué carta jugar, marcando en un
marco amarillo una carta del mazo o de la pila de descartes. Y también
decide qué carta tirar a la pila de descartes.
Vídeo con la Parte 8 del juego
En este vídeo verás un par de partidas completas, que he jugado contra el
motor del Rabino en Excel.
A continuación explicaré lo que no he querido contar en este vídeo para no
hacer
espóiler.
Cómo jugar una partida completa
Esta variante del Rabino no la he diseñado en plan profesional sino en plan
didáctico, aunque estoy intentando ser lo más fiel posible a la manera de
jugar entre dos jugadores.
En esta Parte 8 he ocultado las cartas de arriba, para que no se sepa que
mano tiene el Rabino en Excel, aunque aún sigo mostrando el valor de
las cartas sin combinar, para hacer más didáctico el juego...
Ya no se muestra ningún cuadro de diálogo, cuando Solver intenta resolver la
combinación de cartas, y el motor del juego marca la siguiente carta que
jugará nuestro contrincante del Rabino en Excel.
He cambiado la llamada al complemento Solver de Excel para que no
salga ningún mensaje cuando se alcanza alguno de los límites, de tiempo por
ejemplo, que he fijado intentando resolver las combinaciones posibles de las
cartas del jugador Rabino en Excel.
En la macro ResolverCartas he modificado estas instrucciones:
' Ejecuta el análisis
result = Application.Run("Solver.xlam!SolverSolve", True,
"ShowTrial")
' Finaliza el análisis
Application.Run "Solver.xlam!SolverFinish", 1
Y he añadido esta nueva macro:
Function ShowTrial(Reason As Integer)
ShowTrial = 0
End Function
En esta página en inglés se explica el uso de esta función para que, en
lugar de que Solver se detenga por cualquier motivo mostrando el cuadro de diálogo: Mostrar solución de prueba, ahora no lo muestre y continúe intentando resolver la combinación de las cartas, sin necesidad de
interactuar con el usuario del juego:
También he cambiado las opciones de Solver, para intentar mejorar su
rendimiento, pero aún hay que optimizar esos valores algo más, por lo que
seguiré estudiando esta página en inglés:
El motor del juego ya decide automáticamente cuál es la próxima carta que
jugará el Rabino en Excel, marcando en un marco amarillo una carta
del mazo o de la pila de descartes. También decide automáticamente qué carta
tirar a la pila de descartes.
AVISO:
La carta marcada en amarillo se debe escoger obligatoriamente, y el juego no
permite elegir otra carta que no sea la que ha marcado el motor del juego.
Para hacer más realista el juego, la carta marcada en amarillo tiene que
moverla el jugador humano, pues no cambia automáticamente de un lugar a
otro.
En esta imagen animada el motor del juego marca en amarillo el Rey (K) de
tréboles♣️, para que sea robado de la pila de descartes. A continuación
intenta resolver las posibles combinaciones de las 11 cartas, y acaba
marcando el 7 de diamantes♦️, para que sea
descartado y echado a la pila de descartes.
Para ello he añadido dos nuevas macros al módulo: modReglas
ElegirCarta: Para decidir si el Rabino en Excel marca la carta del mazo o de la pila de descartes.
MarcarCarta: Para marcar la carta que jugará el
Rabino en Excel.
En la hoja 'Motor' he añadido algunas fórmulas para elegir y marcar
la carta a jugar.
En la celda B12 se escribe la carta de la pila de descartes, para comprobar
si combina con las otras 10 cartas del jugador 2, que es el
Rabino en Excel.
En la celda F14 se comprueba si el valor de esa carta es igual al de alguna
de las 10 cartas, en cuyo caso queda marcada.
En la celda G14 se comprueba si esa carta puede formar parte de una escalera
con alguna de las 10 cartas, en cuyo caso queda marcada.
Si la carta de la pila de descartes no sirve para combinar con alguna de las
10 cartas, la carta de arriba del mazo será la que quedará marcada.
La carta marcada, sea del mazo o de la pila de descartes, será la que el
jugador 2 robará para intentar combinarla con las otras 10 cartas.
Una vez combinadas las cartas, el motor del juego decidirá qué carta marcar,
y la carta marcada habrá que echarla a la pila de descartes.
La fórmula que se ve en la imagen de arriba, de la celda Q14, es la que
decide qué carta marcar, valiéndose del nuevo rango de celdas Q3:Q13,
en el que se indica qué cartas no están combinadas y son candidatas a
descartarlas.
Las fórmulas anteriores pueden variar sin previo aviso en las próximas
entregas de las partes de este desarrollo del juego, siempre con la
intención puesta en mejorarlo...
Qué cartas combina el motor del juego
Para saber qué cartas ha combinado el jugador Rabino en Excel, en la Parte 8 hay que ver el
rango E3:E13 de la hoja 'Motor', donde están las cartas ordenadas
según las combinaciones resueltas por el motor del juego.
Este procedimiento no será necesario cuando se muestren las cartas de la
fila de arriba, en el momento en que se decida dar por finalizada la
partida, lo que se verá en la siguiente entrega de este juego...
Qué falta por hacer
Para poder finalizar el diseño del juego aún falta bastante por hacer:
Cerrar la partida con Escalera Real, si todas las cartas están combinadas en una única escalera del mismo palo.
Cerrar la partida con Color, si todas las cartas son del mismo
palo aunque no estén combinadas.
Decidir cuándo acaba la partida cualquiera de los dos jugadores.
Mostrar las cartas del jugador Rabino en Excel al acabar la
partida.
Ordenar las cartas combinadas del jugador Rabino en Excel.
Guardar estadísticas de las partidas entre los dos jugadores.
Todo esto lo iremos viendo en las próximas entregas de las Partes de este curso sobre el
diseño de un juego de cartas en Excel.
Descarga la Parte 8 de un Rabino en Excel
Descarga la Parte 8 de esta variante del Rabino, compatible con las
versiones de escritorio desde Excel 2010 hasta Excel para Microsoft 365.
Las macros del archivo descargado están bloqueadas por defecto. Para
desbloquear las macros debes modificar las Propiedades del archivo
siguiendo estas instrucciones:
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:
🔝To translate this blog post to your language, select it in the top left
Google box.
¡¡¡ Feliz y Próspero Año Nuevo 2025 !!!
Para comenzar este Año Nuevo lo mejor posible publico la
Agenda Calendario Lunar actualizada para este nuevo año, que funciona
únicamente con fórmulas, ¡sin macros VBA!
Se puede usar tanto en español como en inglés, y comenzar la semana en lunes
o en domingo.
He intentado que se pueda abrir en cualquier versión de Excel, también en
Excel para la Web y en las aplicaciones de
Excel para Android y de Excel para Mac.
¡Ya me dirás si lo he conseguido!
De todos los calendarios que he hecho en Excel, éste es del que estoy más
satisfecho para llevar al día mis asuntos. Espero que a ti te pase lo mismo
que a mí.
AVISO:
La única novedad de este año ha sido usar la celda B4 para que la semana
comience en domingo o en lunes. Así puedo usar el rango de celdas B3:J3 para
mostrar los datos de hoy en: la agenda, los aniversarios, los festivos o las
tareas. También indico si no hay datos de hoy para el tipo de calendario
elegido...
ATENCIÓN:
El cambio del tipo de calendario se hace en la celda C3 de la hoja
'Agenda':
Mi agenda: Con todos los aniversarios, festivos y tareas.
Aniversarios: Con los aniversarios y las tareas.
Festivos: Con los festivos y las tareas.
Tareas: Solamente con las tareas de las 24 horas de los 365 días
del año.
Sirva esta Agenda Calendario Lunar para felicitar el Año Nuevo a mis
seguidores.
Descarga la Agenda Calendario Lunar
El archivo tiene todas las hojas protegidas con contraseña, para que los
usuarios no destrocen las fórmulas.
Esta plantilla no contiene macros, pues todos los cálculos se realizan
¡únicamente con fórmulas!
Si te interesa analizar las fórmulas, encontrarás la contraseña, para
desproteger las hojas, en el primer artículo que publiqué sobre calendarios
lunares:
En este vídeo explico cómo he actualizado la agenda, con un ejemplo de cómo
convertirla en un calendario del año 2025, con lo que será fácil crear
agendas de otros años.
¡Apunta en esta agenda tus propósitos para el Año Nuevo!
♣️ 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...
Vídeo con la Parte 7 del juego
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.
Cómo combina las cartas el motor del juego
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:
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:
Las macros del archivo descargado están bloqueadas por defecto. Para
desbloquear las macros debes modificar las Propiedades del archivo
siguiendo estas instrucciones:
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:
Problema 2: Errores en la nube de OneDrive
-
🔝*To translate this blog post to your language, select it in the top left
Google box. *
Este año ha comenzado con dos problemas detectados en Microso...
Crea con IA tablas Excel de ejemplo
-
Crea con IA tablas Excel de ejemplo para practicar y simplificar tareas de
buscar datos o crearlos. A veces, encontrar el conjunto de datos perfecto
para...
What Does #### Mean in Microsoft Excel?
-
If you’re wondering what does #### mean in Excel, read this Microsoft Excel
guide until the end, and learn all the ways Excel uses the pound or number
sign...
3DFrame-NLGeom
-
The VBA version of the 3DFrame spreadsheet has now been updated to allow
geometric non-linear effects to be included. The new version can be
downloaded fro...
Happy Excel Day 45678
-
Where does the time go? Two years ago, we were celebrating Excel Day 45000,
and suddenly it’s Excel Day 45678! Do you have any special events planned?
If n...
FREE 4 Hours Complete Excel Course
-
FREE 4 Hours Complete Excel Course Here is a FREE, complete end-to-end
Excel course to help you learn all the key and essential aspects of
Microsoft Exce...
Análisis DAFO (FODA, DOFA) las decisiones con Excel
-
Para conocer la situación de una empresa, proyecto o persona, recurrimos al
análisis DAFO (FODA, DOFA) en la toma de decisiones con Excel. El los años
sese...
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...
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...
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....
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...
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...
London Excel Meetup Workbooks
-
The workbooks used in my presentation on “Analytical and Interactive
Dashboards in Excel” at the London Excel Meetup, September 3, 2020
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...
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...
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...
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 ...
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...
Mis metas son seguir superando nuevos retos en Excel y compartirlos en mi blog, para sacarle todo el poder a esta excelente herramienta multiusos, tan usada y a la vez tan incomprendida, para así poder mejorar nuestros conocimientos de Excel.