riabayonaor commited on
Commit
9645475
1 Parent(s): 629a4fb

Update app.py

Browse files

cambios en el manejo de bucles y errores

Files changed (1) hide show
  1. app.py +10 -7
app.py CHANGED
@@ -50,25 +50,28 @@ if 'aciertos' not in st.session_state:
50
  st.session_state.aciertos = 0
51
  if 'errores' not in st.session_state:
52
  st.session_state.errores = 0
 
 
53
 
54
  # Mostrar los contadores en la barra lateral
55
  st.sidebar.write(f"Aciertos: {st.session_state.aciertos}")
56
  st.sidebar.write(f"Errores: {st.session_state.errores}")
57
 
58
  # Generación o recuperación del problema actual
59
- if 'ecuacion' not in st.session_state or 'respuestas' not in st.session_state or 'respuesta_correcta' not in st.session_state:
60
  st.session_state.ecuacion, st.session_state.respuestas, st.session_state.respuesta_correcta = generar_ecuacion_y_respuestas()
 
61
 
62
  st.write(st.session_state.ecuacion)
63
- respuesta_elegida = st.radio("Elige tu respuesta", [str(respuesta) for respuesta in st.session_state.respuestas])
64
 
65
  # Botón de envío
66
  if st.button("Enviar"):
67
  resultado = manejar_respuesta(st.session_state.ecuacion, respuesta_elegida, st.session_state.respuesta_correcta)
68
  st.write(resultado)
69
- # Actualizar el gráfico después de cada envío, si es necesario
70
 
71
- # Botón para generar un nuevo problema, con una clave única
72
- if st.button("Generar Nuevo Problema", key="generar_nuevo"):
73
- st.session_state.ecuacion, st.session_state.respuestas, st.session_state.respuesta_correcta = generar_ecuacion_y_respuestas()
74
- st.experimental_rerun()
 
50
  st.session_state.aciertos = 0
51
  if 'errores' not in st.session_state:
52
  st.session_state.errores = 0
53
+ if 'nuevo_problema' not in st.session_state:
54
+ st.session_state.nuevo_problema = True # Se añade un nuevo estado para controlar la generación de nuevos problemas
55
 
56
  # Mostrar los contadores en la barra lateral
57
  st.sidebar.write(f"Aciertos: {st.session_state.aciertos}")
58
  st.sidebar.write(f"Errores: {st.session_state.errores}")
59
 
60
  # Generación o recuperación del problema actual
61
+ if st.session_state.nuevo_problema:
62
  st.session_state.ecuacion, st.session_state.respuestas, st.session_state.respuesta_correcta = generar_ecuacion_y_respuestas()
63
+ st.session_state.nuevo_problema = False # Restablecer para evitar re-ejecuciones innecesarias
64
 
65
  st.write(st.session_state.ecuacion)
66
+ respuesta_elegida = st.radio("Elige tu respuesta", [str(respuesta) for respuesta en st.session_state.respuestas])
67
 
68
  # Botón de envío
69
  if st.button("Enviar"):
70
  resultado = manejar_respuesta(st.session_state.ecuacion, respuesta_elegida, st.session_state.respuesta_correcta)
71
  st.write(resultado)
72
+ # No se necesita llamar a st.experimental_rerun() aquí porque la página se actualiza con el resultado
73
 
74
+ # Botón para generar un nuevo problema
75
+ if st.button("Generar Nuevo Problema"):
76
+ st.session_state.nuevo_problema = True # Activar la señal para generar un nuevo problema
77
+ st.experimental_rerun() # Re-ejecutar la aplicación para reflejar el cambio