Descargar el fichero: piedras.xlsm
Juguemos en Excel. Podemos programar una macro que nos permita jugar contra el ordenador a un juego que consiste en ir quitando piedras y donde el último que quite es el que pierde.
Al iniciar el juego, el ordenador genera de forma aleatoria un conjunto de piedras que oscilan entre 9 como mínimo y 30 como máximo. Al pulsar sobre el botón denominado 'Nuevo Juego' se generan las piedras iniciales que hay en el montón. Gráficamente, este montón inicial de piedras se muestra mediante celdas de color verde de la fila 9.
Ud. juega contra el ordenador. Se dispone de un montón de piedras. Cada jugador quita 1, 2 o 3 piedras en cada tirada. Comienza quitando Ud.. El último en quitar pierde.
Son varias macros enlazadas las que nos permiten que el juego funcione.
Código:
Private tuquitas, quitadass As Integer Private mi, tu As Integer Private n, yoquito As Integer Sub piedras() Dim c As Integer Worksheets("Hoja1").Activate Range("Q2").ClearContents Worksheets(2).Range(Cells(9, 3), Cells(39, 32)).Clear Randomize n = Int(Rnd * 22 + 9) Worksheets(2).Range(Cells(9, 3), Cells(9, n + 2)).Interior.Color = RGB(0, 255, 0) Worksheets(2).Range(Cells(9, 3), Cells(9, n + 2)).Borders.Color = RGB(0, 0, 0) Range("ah23").Value = n Range("B9").Value = "Piedras Iniciales" Range("A1").Select ActiveWorkbook.Names.Add Name:="jugadas", RefersToR1C1:="=Hoja1!R10C2:R39C2" Worksheets(2).Range("jugadas").ClearContents tu = 1: mi = 2 End Sub Public Sub Quito1() quitadass = 1 Call quitadas End Sub Public Sub Quito2() quitadass = 2 Call quitadas End Sub Public Sub Quito3() quitadass = 3 Call quitadas End Sub Sub maquina() yoquito = (n - 1) Mod 4 If yoquito = 0 Then yoquito = Int(Rnd * 3 + 1) End If n = n - yoquito If n <= 0 Then Range("Q2").Value = "TU GANAS. FELICIDADES!!!" Else Worksheets(2).Range("jugadas").Cells(mi, 1).Value = "Maquina quita " & yoquito Range("ah23").Value = n Call colores("Rojo") mi = mi + 2 End If End Sub Sub colores(micolor As String) If micolor = "Amarillo" Then Worksheets(2).Range(Cells(9 + tu, 3), Cells(9 + tu, n + 2)).Interior.Color = RGB(255, 255, 0) Worksheets(2).Range(Cells(9 + tu, 3), Cells(9 + tu, n + 2)).Borders.Color = RGB(0, 0, 0) ElseIf micolor = "Rojo" Then Worksheets(2).Range(Cells(9 + mi, 3), Cells(9 + mi, n + 2)).Interior.Color = RGB(255, 0, 0) Worksheets(2).Range(Cells(9 + mi, 3), Cells(9 + mi, n + 2)).Borders.Color = RGB(0, 0, 0) End If End Sub Sub quitadas() Worksheets(2).Range("jugadas").Cells(tu, 1).Value = "Tu quitas " & quitadass n = n - quitadass If n <= 0 Then Range("Q2").Value = "LA MÁQUINA GANA" Else Call colores("Amarillo") tu = tu + 2 Call maquina End If End Sub
Para ganar el juego se ha de .....
Spoiler. Al igual que al hablar de cine o de novelas, en las siguientes líneas desvelaremos el secreto del juego. Este aviso se hace por si usted desea descubrir por sí mismo cómo ganar a la máquina.
Para ganar el juego, se han de quitar en cada tirada un número de piedras tal que las que queden en el montón, menos una, sean múltiplo de cuatro. Esto se puede ver en la celda AI23 donde se utiliza la fórmula siguiente: =RESIDUO(AH23-1;4)
Truco
La celda AI23 oculta su contenido debido a que utiliza tinta blanca sobre fondo blanco. Podemos utilizar un truco mientras jugamos. Se trata de pulsar con el ratón sobre el indicador de columna AI, de esta forma queda seleccionada toda la columna AI, lo cual permite ver ligeramente el contenido de la celda AI23.
¡Espero que disfrutes con el juego de la última piedra!
¿No podrías pasar el juego?
ResponderEliminar¿No podrías pasar el juego?
ResponderEliminarTe dejo un ejemplo de juego gráfico con movimiento hecho en Excel:
ResponderEliminarhttps://www.youtube.com/watch?v=wUmorCxK4HY
si sigues los enlaces veras cómo hacerlos,
EN EL CANAL ENCONTRARÁS JUEGOS ADUCATIVOS.- Saludos