Mi duda es sobre un ejercicio que encontré en un Manual básico sobre VisualBasic.
El tema del ejercicio se centraba básicamente en Números Aleatorios.
Había que hacer que el programa generase un número aleatorio y el usuario tratara de adivinarlo.
Yo utilizé la simple función Rnd (Siempre genera el mismo número) para hacerlo más sencillo y a su vez, para complicarlo un poquito a ese valor aleatorio multiplicarlo por otro valor a elección del usuario.
Pero basta de charla aquí les pongo el código que utilizé:
Código:
Option Explicit
Private Sub Command1_Click()
Dim N As Integer
Dim M As Integer 'Ésta es la verdadera incógnita (X del Form)
Dim X As Integer
Show
X = Val(Text1.Text)
N = Val(InputBox("Escribe el número que piensas que vadrá X"))
M = Int(Rnd * X) 'Int elimina decimales.
'Rnd selecciona valor numérico aleatorio
If N > M Then
MsgBox "El número " & CStr(N) & " es mayor que X", vbInformation
Text1.Locked = True 'Bloqueo TextBox para no estar colocando valor _
todo el tiempo...
Text1.BackColor = vbYellow
Label3.Caption = Label3.Caption + 1
Else
If N = M Then
MsgBox ("¡Has acertado!"), vbExclamation
MsgBox (" X = " & CStr(M))
End
Else
If N < M Then
MsgBox "El número " & CStr(N) & " es menor que X", vbInformation
Text1.Locked = True
Text1.BackColor = vbYellow
Label3.Caption = Label3.Caption + 1
End If
End If
End If
End Sub
Private Sub Text1_Change()
If Text1.Text = "" Then
Command1.Visible = False
Else
Command1.Visible = True
End If
End Sub
El problema es que, si selecciono como multiplicador del número Rnd un número grande, el programilla este se vuelve loco y como que se "pierde" y es casi imposible de adivinarlo.
¿Alguien sabrá qué hice mal?¿El código que escribí no se aplica al caso?
Desde ya gracias!
P.D: aquí les dejo la aplicación y el proyecto para que ustedes lo vean...
http://www.megaupload.com/?d=MSYY0XC2