Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2011, 06:57
Avatar de sven_uri
sven_uri
 
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 13 años, 7 meses
Puntos: 4
Pregunta Problemas cogiendo variables con un programa de un concurso

Buenas a todos,

Estoy intentando crear un concurso pero haciendolo con visual basic.

El concurso consiste como en los de la tele, contestar una serie de preguntas de las cuales solo hay una correcta. Es tan simple como que si se fallara una se le resta una vida y sino pues felicitar al concursante. El juego seguira adelante hasta que se contesten unas cuantas preguntas o hasta que el concursante pierda sus tres vidas.

El programa funciona (casi) pero no entiendo el fallo que me sale. He creado una tabla en el excel para no sobrecargar el programa ni utilizar base de datos. El excel esta compuesto por una tabla con 5 columnas. En la primera columna estan las preguntas, en la segunda la respuesta correcta y en las otras columnas respuestas erroneas.

El caso es que el programa coje la pregunta y tambien coje la respuesta correcta y en el supuesto "if" donde deberia decirme si es correcto o no, me lo marca como incorrecto haga lo que haga.

Haber si conseguis ver lo que yo no veo :S

Saludos.

Código vb:
Ver original
  1. Sub Jugar()
  2.  
  3. Dim preguntadesordenada As String
  4. Dim encontrado As Boolean
  5. Dim correcta, resposta2, celdac, celdad, celdae, celdaf As String
  6. Dim vida As Integer
  7.  
  8.  
  9. vida = 3
  10. tam = Range("h4").Value
  11.  
  12. For f1 = 1 To tam
  13.     Range("g" & (f1 + 1)) = ""
  14. Next
  15.  
  16. For f1 = 1 To 10
  17. aleatorio = Int(Rnd * tam) + 1
  18.  
  19. celdac = Range("c" & (aleatorio + 1)).Value
  20. celdad = Range("d" & (aleatorio + 1)).Value
  21. celdae = Range("e" & (aleatorio + 1)).Value
  22. celdaf = Range("f" & (aleatorio + 1)).Value
  23. preguntadesordenada = Range("b" & (aleatorio + 1))
  24.  
  25. InputBox (preguntadesordenada & "          " & vbCrLf & vbCrLf & celdac & "  /   " & celdad & "  /   " & celdae & "  /   " & celdaf)
  26.  
  27. If preguntadesordenada = celdac Then
  28.  
  29.     MsgBox ("Correcto!! Pasemos a la siguiente pregunta")
  30.  
  31. Else
  32.         vida = vida - 1
  33.         MsgBox ("Te quedan" & vida & " para seguir jugando!")
  34.    
  35. End If
  36.        
  37.     If vida = 0 Then
  38.    
  39.         MsgBox ("GAME OVER: No tienes vidas!")
  40.         Exit Sub
  41.    
  42.     End If
  43.  
  44. Next
  45.    
  46. For f1 = 1 To tam
  47.     encontrado = False
  48.     aleatorio = Int(Rnd * (tam)) + 1
  49.  
  50.     While encontrado = False
  51.         If Range("g" & (aleatorio + 1)) <> 1 Then
  52.             Range("g" & (aleatorio + 1)) = 1
  53.        
  54.         encontrado = True
  55.      
  56.         Else
  57.    
  58.             If aleatorio >= tam Then
  59.                 aleatorio = 1
  60.             Else
  61.                 aleatorio = aleatorio + 1
  62.             End If
  63.         End If
  64.      
  65.     Wend
  66.    
  67.        
  68.  
  69. Next
  70.  
  71. End Sub