TEMA 24: Programa Adivina
12. Programa: programa para adivinar un número. Al igual que el programa Carreras (tema 22), se utiliza la función Rnd para generar números aleatorios.
OBJETO PROPIEDAD VALOR Form1 BorderStyle
Caption
Icon
StartUpPosition1
Programa Adivina. Ver 1.0.
Lighton.ico (Graphics, Icons, Misc)
2LblNumero AutoSize
Caption
FontTrue
-
NegritaTxtNumero Alignment
Font
MaxLength
Text2-Center
12, negrita
4
-CmdOk Caption
FontOk.
Comic Sans MS, negrita, 10
Private Menor, Mayor, Num As Variant
Bajate el programa completo haciendo clic en la imagen
Private Numero As Integer
Private Conta As Integer
Private Sub CmdOk_Click()
Num = TxtNumero.Text 'Número que introducimos
'Comprueba si el Número introducido es numérico. Si no sale del procedimiento
If Not IsNumeric(Num) Then
MsgBox "El número introducido no es numérico", vbExclamation, "ERROR"
TxtNumero.Text = "": TxtNumero.SetFocus
Exit Sub
End If
'Comprueba si el Número introducido está entre los valores Menor y Mayor
Num = CInt(Num) 'Convierte el número a entero
If Num < Menor Or Num > Mayor Then
MsgBox "El valor introducido no es correcto", vbInformation, "ERROR"
TxtNumero.Text = "": TxtNumero.SetFocus
Exit Sub
End If
Conta = Conta + 1 'Contador de intentos
'Si el número introducido es Mayor...
If Num > Numero Then
MsgBox "El número es MENOR", vbInformation, "NUMERO"
Mayor = Num
LblNumero.Caption = "Introduce un número entre " + Str(Menor) _
+ " y " + Str(Mayor) + ":"
End If
'Si el número introducido es Menor...
If Num < Numero Then
MsgBox "El número es MAYOR", vbInformation, "NUMERO"
Menor = Num
LblNumero.Caption = "Introduce un número entre " + Str(Menor) _
+ " y " + Str(Mayor) + ":"
End If
'Si el número introducido es Igual...
If Num = Numero Then
MsgBox "Correcto ese es el NUMERO" + Chr(13) + "En sólo" _
+ Str(Conta) + " intentos.", vbInformation, "NUMERO"
If MsgBox("¿Desea jugar otra vez?", vbYesNo, "NUMERO") = vbNo Then End
Form_Load 'Comienza el juego de nuevo
End If
TxtNumero.SetFocus 'Captura el foco del cuadro de texto
TxtNumero.Text = "" 'Borra el cuadro de texto
End Sub
Private Sub Form_Load()
Randomize Timer
Numero = Int(Rnd * 1000) 'Número que tenemos que adivinar
Menor = 1: Mayor = 1000: Conta = 0 'Inicializa variables
TxtNumero.Text = "" 'Borra el cuadro de texto
LblNumero.Caption = "Introduce un número entre " + Str(Menor) _
+ " y " + Str(Mayor) + ":"
End Sub
Private Sub TxtNumero_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then CmdOk_Click 'Tecla ENTER ejecuta procedimiento del botón
End Sub
![]()