Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas cogiendo variables con un programa de un concurso

Estas en el tema de Problemas cogiendo variables con un programa de un concurso en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/12/2011, 06:57
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 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
  #2 (permalink)  
Antiguo 15/12/2011, 07:01
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Problemas cogiendo variables con un programa de un concurso

Gracias por vuestro tiempo !
  #3 (permalink)  
Antiguo 15/12/2011, 08:00
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Problemas cogiendo variables con un programa de un concurso

Hola, primero te doy una pista así al vuelo y después comentamos.

¿ preguntadesordenada = celdac ?

Esta comparación no tiene sentido, SIEMPRE sera falso

Revisa la utilización del InputBox porque lo estás haciendo mal.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #4 (permalink)  
Antiguo 15/12/2011, 08:09
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Problemas cogiendo variables con un programa de un concurso

Ese es el problema que tengo jajajaja. No consigo verlo, para mi tiene "sentido" :S

En teoria le estoy diciendo que si lo que escriba en el inputbox es igual a la columna c que todo genial y en caso contrario error y restar una vida :S .

PS: En todo caso, la variable preguntadesordenada no puede ser = que la columnac pq preguntadesordenada= a la columna b no? Pero si es asi, como asigno lo que yo escriba con la columna c ?

Saludos.
  #5 (permalink)  
Antiguo 15/12/2011, 10:03
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Problemas cogiendo variables con un programa de un concurso

Hola:

No he probado el código, pero prueba a ver si entienes con este ejemplo lo que te estaba diciendo, tienes que ver claramente a que me refería:

Dim Respuesta As String

Respuesta = InputBox(preguntadesordenada & " " & vbCrLf & vbCrLf & celdac & " / " & celdad & " / " & celdae & " / " & celdaf)

If Respuesta = celdac Then


Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: basic, concurso, excel, programa, tabla, variables, vb, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:43.