Update app.py
Browse files
app.py
CHANGED
@@ -76,48 +76,42 @@ if 'preguntas' not in st.session_state or not st.session_state.preguntas:
|
|
76 |
# Botón para generar nuevas preguntas
|
77 |
if st.button("Generar nuevas preguntas"):
|
78 |
st.session_state.preguntas = generar_preguntas()
|
79 |
-
st.session_state.
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
respuesta_indice = opciones.index(respuesta)
|
97 |
-
if respuesta_indice == pregunta.get('respuesta_correcta', 0):
|
98 |
-
st.success("¡Correcto!")
|
99 |
-
else:
|
100 |
-
st.error(f"Incorrecto. La respuesta correcta es: {opciones[pregunta.get('respuesta_correcta', 0)]}")
|
101 |
-
else:
|
102 |
-
st.warning(f"No hay opciones disponibles para la pregunta {i+1}")
|
103 |
-
|
104 |
-
submitted = st.form_submit_button("Enviar respuestas")
|
105 |
-
|
106 |
-
# Calcular y mostrar el resultado final
|
107 |
-
if submitted:
|
108 |
-
correctas = 0
|
109 |
-
total_respondidas = 0
|
110 |
-
for i, pregunta in enumerate(st.session_state.preguntas):
|
111 |
-
respuesta = st.session_state.get(f"pregunta_{i}")
|
112 |
if respuesta:
|
113 |
-
|
114 |
-
if
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
st.write(f"Has acertado {correctas} de {total_respondidas} preguntas respondidas.")
|
119 |
else:
|
120 |
-
st.warning("No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
|
122 |
# Información adicional en la barra lateral
|
123 |
st.sidebar.title("Información sobre el cuestionario")
|
|
|
76 |
# Botón para generar nuevas preguntas
|
77 |
if st.button("Generar nuevas preguntas"):
|
78 |
st.session_state.preguntas = generar_preguntas()
|
79 |
+
for i in range(len(st.session_state.preguntas)):
|
80 |
+
if f"respuesta_{i}" in st.session_state:
|
81 |
+
del st.session_state[f"respuesta_{i}"]
|
82 |
+
|
83 |
+
# Mostrar preguntas y opciones
|
84 |
+
for i, pregunta in enumerate(st.session_state.preguntas):
|
85 |
+
st.write(f"**Pregunta {i+1}:** {pregunta['pregunta']}")
|
86 |
+
opciones = pregunta.get('opciones', [])
|
87 |
+
if opciones:
|
88 |
+
respuesta = st.radio(
|
89 |
+
f"Selecciona una opción para la pregunta {i+1}:",
|
90 |
+
options=opciones,
|
91 |
+
key=f"respuesta_{i}",
|
92 |
+
index=None
|
93 |
+
)
|
94 |
+
|
95 |
+
# Evaluar la respuesta en tiempo real
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
if respuesta:
|
97 |
+
respuesta_indice = opciones.index(respuesta)
|
98 |
+
if respuesta_indice == pregunta.get('respuesta_correcta', 0):
|
99 |
+
st.success("¡Correcto!")
|
100 |
+
else:
|
101 |
+
st.error(f"Incorrecto. La respuesta correcta es: {opciones[pregunta.get('respuesta_correcta', 0)]}")
|
|
|
102 |
else:
|
103 |
+
st.warning(f"No hay opciones disponibles para la pregunta {i+1}")
|
104 |
+
|
105 |
+
# Calcular y mostrar el resultado en tiempo real
|
106 |
+
correctas = sum(1 for i, pregunta in enumerate(st.session_state.preguntas)
|
107 |
+
if f"respuesta_{i}" in st.session_state and
|
108 |
+
st.session_state.preguntas[i]['opciones'].index(st.session_state[f"respuesta_{i}"]) == pregunta.get('respuesta_correcta', 0))
|
109 |
+
total_respondidas = sum(1 for i in range(len(st.session_state.preguntas)) if f"respuesta_{i}" in st.session_state)
|
110 |
+
|
111 |
+
if total_respondidas > 0:
|
112 |
+
st.write(f"Has acertado {correctas} de {total_respondidas} preguntas respondidas.")
|
113 |
+
else:
|
114 |
+
st.info("Aún no has respondido ninguna pregunta.")
|
115 |
|
116 |
# Información adicional en la barra lateral
|
117 |
st.sidebar.title("Información sobre el cuestionario")
|