Vamos a programar un juego sencillo con una Macro de Excel para ilustrar los bucles Do ... Loop. Puede ver la información sobre estos bucles en el siguiente post.
Juego de adivinar el número secreto
Se trata de un juego donde el ordenador piensa un número secreto entre 1 y 100, sin decimales, y nosotros tenemos que adivinar qué número ha pensado.
El ordenador nos pide que introduzcamos por teclado un número y luego nos informa con una de las siguientes posibilidades:
- El número el menor
- El número el mayor
- Felicidades, ha adivinado el número secreto
- Si superamos los 10 intentos nos avisa de ello y nos muestra el número secreto.
Veamos la macro que hemos utilizado.
Sub adivina() Dim zona As String Dim x As Byte, n As Byte Dim tirada As Byte Randomize x = Fix(Rnd * 101): tirada = 1 'FIX=INT=parte entera Do If zona = "" Then n = InputBox("Introduzca un número entero del 0 al 100" & vbCrLf _ & "Dispone de 10 tiradas para lograrlo", "Tirada número " & tirada) Else n = InputBox("El número secreto es " & zona & vbCrLf & _ "Introduzca otro", "Tirada número " & tirada) End If If n = x Then MsgBox "Felicidades!!!" & vbCrLf & "Ha adivinado el número secreto " _ & x & ", en " & tirada & " tiradas" Exit Sub End If If x < n Then zona = "Inferior" Else zona = "Superior" End If tirada = tirada + 1 Loop Until tirada > 10 MsgBox "Ha agotado las 10 tiradas disponibles" & vbCrLf _ & "El número secreto es " & x End Sub
Ejercicio propuesto
Modifique el código anterior para emplear alguno de los siguientes tipos de bucles:
- Do While ... Loop
- Do ... Loop While
Otra pregunta: ¿Se podría emplear un bucle Do ... Loop sin usar ningún While, ni usar Until?
Interezante resolución del código.
ResponderEliminar