¿Esto está bien?

Iniciado por Akkiles145, 19 Diciembre 2010, 17:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Akkiles145

Hola a todos.

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é:

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

BlackZeroX

The Dark Shadow is my passion.