hola, tengo un pequeño problema con una chorradilla de visual basic. exactamente, no se me ejecuta la parte final del programa. no me aparece ni el numero de intentos del usuario ni la suma de las respuestas ni el juicio del juego del usuario.. era por si le encontrais el fallo... aqui os lo pego. gracias
Option Explicit
Sub main()
'Explicamos en qué consiste el juego
MsgBox (" Debe adivinar un número escogido aleatoriamente por el ordenador. Usted define el rango y el máximo de intentos. ¡Suerte! ")
'Definimos las variables
Dim rango As Integer
Dim aleatorio As Integer
Dim maxintentos As Integer
Dim i As Integer
Dim prueba As Integer
'Solicitamos el rango y el número de intentos
rango = InputBox("Por favor, introduzca el rango.")
While rango < 0
rango = InputBox("El rango debe ser mayor que cero.")
Wend
maxintentos = InputBox("Por favor, introduzca el máximo de intentos.")
While maxintentos >= rango Or maxintentos < 0
maxintentos = InputBox("El máximo de intentos debe ser mayor que 0 y menor que " & rango)
Wend
'Generamos el aleatorio
Randomize
aleatorio = Rnd * rango
'Comienza el juego
For i = 1 To maxintentos
prueba = InputBox("Por favor, introduzca un número entre 0 y " & rango)
If prueba = aleatorio Then
MsgBox ("¡Enorabuena, ha acertado!")
Exit For
Else
If prueba < aleatorio Then
MsgBox ("El número correcto es mayor.")
Else
MsgBox ("El número correcto es menor.")
End If
End If
Next
If prueba <> aleatorio Then
MsgBox ("Lo sentimos, no lo ha acertado. Ojalá tenga más suerte la próxima vez.")
End If
End Sub
Sub main2()
'Definimos las variables
Dim rango As Integer
Dim aleatorio As Integer
Dim maxintentos As Integer
Dim i As Integer
Dim prueba As Integer
Dim j As Integer
Dim suma As Integer
'Solicitamos el rango y el máximo de intentos
rango = InputBox("Por favor, introduzca el rango.")
While rango < 0
rango = InputBox("El rango debe ser mayor que cero.")
Wend
maxintentos = InputBox("Por favor, introduzca el máximo de intentos.")
While maxintentos > rango
maxintentos = InputBox("El máximo de intentos debe ser menor que " & rango)
Wend
'Generamos el aleatorio
Randomize
aleatorio = Rnd * rango
'Comienza el juego, introduciendo la suma de los números que introduce el usuario y el número de intentos del usuario.
For i = 1 To maxintentos
prueba = InputBox("Por favor, introduzca un número entre 0 y " & rango)
suma = suma + prueba
j = j + 1
If prueba = aleatorio Then
MsgBox ("¡Enorabuena, ha acertado!")
Exit For
Else
If prueba < aleatorio Then
MsgBox ("El número correcto es mayor.")
Else
MsgBox ("El número correcto es menor.")
End If
End If
Next
If prueba <> aleatorio Then
MsgBox ("Lo sentimos, no lo ha acertado. Ojalá tenga más suerte la próxima vez.")
End If
MsgBox ("Ha tenido " & j & " intentos")
MsgBox ("La suma de los números que ha introducido es " & suma)
End Sub
Sub main3()
'Definimos las variables
Dim rango As Integer
Dim aleatorio As Integer
Dim maxintentos As Integer
Dim i As Integer
Dim prueba As Integer
Dim j As Integer
Dim suma As Integer
'Solicitamos el rango y el máximo de intentos
rango = InputBox("Por favor, introduzca el rango.")
While rango < 0
rango = InputBox("El rango debe ser mayor que cero.")
Wend
maxintentos = InputBox("Por favor, introduzca el máximo de intentos.")
While maxintentos > rango
maxintentos = InputBox("El máximo de intentos debe ser menor que " & rango)
Wend
'Generamos el aleatorio
Randomize
aleatorio = Rnd * rango
'Comienza el juego, introduciendo un juicio sobre el juego del usuario.
For i = 1 To maxintentos
prueba = InputBox("Por favor, introduzca un número entre 0 y " & rango)
suma = suma + prueba
j = j + 1
If prueba = aleatorio Then
MsgBox ("¡Enorabuena, ha acertado!")
Exit For
Else
If prueba < aleatorio Then
MsgBox ("El número correcto es mayor.")
Else
MsgBox ("El número correcto es menor.")
End If
End If
Next
If prueba <> aleatorio Then
MsgBox ("Lo sentimos, no lo ha acertado. Ojalá tenga más suerte la próxima vez.")
End If
MsgBox ("Ha tenido " & j & " intentos")
MsgBox ("La suma de los números que ha introducido es " & suma)
Select Case intentos
Case intentos <= intentos / 4
MsgBox ("Teniendo en cuenta que sólo ha tenido " & j & " intentos podemos decir que es usted muy bueno. ¡Enorabuena!")
Case intentos / 4 To intentos / 2
MsgBox ("Teniendo en cuenta que ha tenido " & j & " intentos podemos decir que es usted bastante bueno.")
Case intentos / 2 To 3 * intentos / 4
MsgBox ("Teniendo en cuenta sus " & j & " intentos solo podemos destacar su mediocridad.")
Case 3 * intentos / 4 To intentos
MsgBox ("Despues de sus " & j & " intentos le diremos que es usted realmente malo.")
End Select
End Sub