Este programa consta de dos label en los que aparecen números del 1 al 10 aleatoriamente, a los que se unen otros dos que cuentan los fallos y aciertos.
El usuario introduce el resultado del producto de los dos primeros label en un textbox y, tras pulsar un botón, aparece un mensaje que le indica si ha acertado o fallado, y en el caso de fallo, le indica el resultado correcto.
Cada vez que el usuario acierta o falla, se añade un acierto o fallo mas al contador. Y allí es justo donde radica el problema, ya que cada vez que hay una nueva pregunta, el contador se resetea, de manera que cuando hay un acierto seguido de un fallo, se borra el acierto y se añade el fallo; y cuando hay dos seguidos, el contador no pasa del 1.
Este es el código, me gustaría que lo mirarais por si veis el fallo que yo no encuentro:
PUBLIC SUB pregunta()
DIM arriba, abajo, aciertos, fallos AS Integer
RANDOMIZE
arriba = Int(Rnd * 11)
abajo = Int(Rnd * 11)
Label1.Text = arriba
Label2.Text = abajo
TextBox1.Text = ""
END
PUBLIC SUB Form_Open()
pregunta
END
PUBLIC SUB Button1_Click()
pregunta
END
PUBLIC SUB comprobar()
DIM respuesta, arriba, abajo, solucion, aciertos, fallos AS Integer
respuesta = TextBox1.Text
solucion = (Label1.Text * Label2.Text)
IF respuesta = Int(solucion) THEN
Message.Info("la respuesta es correcta")
INC (aciertos)
ELSE
Message.Info("te has equivocado, la respuesta es " & solucion)
INC (fallos)
ENDIF
Label5.Text = aciertos
Label7.Text = fallos
IF Int(aciertos + fallos) = 10 THEN
Message.Info("tu puntuacion es " & Val(aciertos - fallos))
ENDIF
pregunta
END
PUBLIC SUB Button2_Click()
comprobar
END
PUBLIC SUB TextBox1_KeyPress()
IF Key.Code = Key.Enter THEN comprobar
END
DIM arriba, abajo, aciertos, fallos AS Integer
RANDOMIZE
arriba = Int(Rnd * 11)
abajo = Int(Rnd * 11)
Label1.Text = arriba
Label2.Text = abajo
TextBox1.Text = ""
END
PUBLIC SUB Form_Open()
pregunta
END
PUBLIC SUB Button1_Click()
pregunta
END
PUBLIC SUB comprobar()
DIM respuesta, arriba, abajo, solucion, aciertos, fallos AS Integer
respuesta = TextBox1.Text
solucion = (Label1.Text * Label2.Text)
IF respuesta = Int(solucion) THEN
Message.Info("la respuesta es correcta")
INC (aciertos)
ELSE
Message.Info("te has equivocado, la respuesta es " & solucion)
INC (fallos)
ENDIF
Label5.Text = aciertos
Label7.Text = fallos
IF Int(aciertos + fallos) = 10 THEN
Message.Info("tu puntuacion es " & Val(aciertos - fallos))
ENDIF
pregunta
END
PUBLIC SUB Button2_Click()
comprobar
END
PUBLIC SUB TextBox1_KeyPress()
IF Key.Code = Key.Enter THEN comprobar
END