Juego chorra

Hola necesito de nuevo tu inestimable ayuda, veras, es el famoso juego de adivinar un numero al azar que previamente se ha generado aleatoriamente. Mi problema viene a la hora de escribir las frases de si el numero introducido es mayor, menor o es el introducido, con el código que te mando siempre me dice lo mismo que el numero es mayor, la verdad no comprendo porqué...
Como comprobaras el numero aleatorio se genera al cargarse el formulario, y el numero generado lo paso a una caja de texto para comprobar si luego funcionan bien las comparaciones, pero nada de nada...
Gracias y un saludo
Jose MAri
Private Sub Form_Load()
Dim n As Integer
Randomize
n = Rnd * 100
Text1.Text = Val(n)
End Sub
Private Sub Command1_Click()
If Val(Text2.Text) > n Then
Text3.Text = "El numero que has introducido es mayor"
Else
If Val(Text2.Text) < n Then
Text3.Text = "El numero que has introducido es menor"
Else
Text3.Text = "Has acertado el numero"
End If
End If
End Sub

3 Respuestas

Respuesta
1
Creo que el problema esta en command1
Private Sub Form_Load()
Dim n As Integer 'la variable n es privada de este procedimiento
Randomize
n = Rnd * 100
Text1.Text = Val(n)
End Sub
Private Sub Command1_Click()
If Val(Text2.Text) > n Then ' supongo que text2 tiene el numero que ingresaste previamente, pero lo estas comparando con la variable n, que ya no existe, su valor esta ahora en text1
Text3.Text = "El numero que has introducido es mayor"
Else
If Val(Text2.Text) < n Then
Text3.Text = "El numero que has introducido es menor"
Else
Text3.Text = "Has acertado el numero"
End If
End If
Creo que con eso se resuelve el problema.. seria dejar el procedimiento del command1 asi
Private Sub Command1_Click()
If Val(Text2.Text) > val(text1.text) Then
Text3.Text = "El numero que has introducido es mayor"
Else
If Val(Text2.Text) < val(text1.text) Then
Text3.Text = "El numero que has introducido es menor"
Else
Text3.Text = "Has acertado el numero"
End If
End If
Exactamente lo tengo como me dices comparando las dos cajas de texto, pero como se haría para hacerlo con la variable, creo que declarándola publica, algo así como:
"Public
dim n as integer"
Gracias
Que si lo tienes en el text1 ...
Ya no hace falta nada más porque así debería resultar bien...
Pero si quieres hacerlo con la variable
Deberías declararla publica al formulario
esto se hace deberías seleccionar GENERAL y DECLARACIONES en el código del formulario ...
y ahi escribes public N as Integer...
Así sería con la variable
Respuesta
1
Otra vez:
El código que me has enviado no falla siempre y cuando n este declarada en el ámbito de global.
Puedes probar a declararla globalmente la variable n o a cambiar en el procedimiento command1_click donde aparece n por val(text1.text)
Respuesta
1
El código por lo que veo esta bien, pero el problema es la declaración de la variable, esta la tienes en forma local dentro del evento load del formulario, esa variable "n" la tienes que declarar en el evento General del Formulario, así la trabajas en forma publica.
Cualquier duda me consultas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas