riabayonaor
commited on
Commit
•
26f7970
1
Parent(s):
1930bfd
Update app.py
Browse filesmejora en el manejo de respuestas
app.py
CHANGED
@@ -121,31 +121,36 @@ def get_ui_elements():
|
|
121 |
return problema, opciones, respuesta_correcta
|
122 |
|
123 |
def manejar_respuesta(respuesta_elegida, respuesta_correcta, nivel):
|
124 |
-
"""Evalúa la respuesta del usuario, proporcionando retroalimentación y una explicación."""
|
125 |
tolerancia = 1e-9
|
126 |
correcto = False
|
127 |
-
if nivel
|
128 |
-
correcto = all(abs(e - c) < tolerancia for e, c in zip(respuesta_elegida, respuesta_correcta))
|
129 |
-
elif nivel == 1: # Sistema 2x2
|
130 |
correcto = all(abs(e - c) < tolerancia for e, c in zip(respuesta_elegida, respuesta_correcta))
|
131 |
-
else: #
|
132 |
correcto = abs(respuesta_elegida - respuesta_correcta) < tolerancia
|
|
|
|
|
|
|
133 |
if correcto:
|
134 |
-
|
135 |
-
|
136 |
-
if aciertos
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
nivel = 2
|
141 |
-
st.success("¡Felicitaciones, has pasado al nivel Difícil: Sistemas de ecuaciones lineales 3x3!")
|
142 |
-
update_game_state(aciertos + 1, errores, nivel, None, None, None)
|
143 |
else:
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
|
150 |
# Interfaz de usuario y lógica de la aplicación
|
151 |
st.title("Desafío de Matemáticas")
|
|
|
121 |
return problema, opciones, respuesta_correcta
|
122 |
|
123 |
def manejar_respuesta(respuesta_elegida, respuesta_correcta, nivel):
|
124 |
+
"""Evalúa la respuesta del usuario, proporcionando retroalimentación y una explicación detallada."""
|
125 |
tolerancia = 1e-9
|
126 |
correcto = False
|
127 |
+
if nivel in [1, 2]: # Para sistemas de ecuaciones
|
|
|
|
|
128 |
correcto = all(abs(e - c) < tolerancia for e, c in zip(respuesta_elegida, respuesta_correcta))
|
129 |
+
else: # Para ecuaciones lineales
|
130 |
correcto = abs(respuesta_elegida - respuesta_correcta) < tolerancia
|
131 |
+
|
132 |
+
aciertos, errores, nivel_actual, _, _, _ = get_game_state()
|
133 |
+
|
134 |
if correcto:
|
135 |
+
aciertos += 1
|
136 |
+
resultado = f"¡Correcto! +1 punto. Ahora tienes {aciertos} aciertos."
|
137 |
+
if (aciertos == 5 and nivel_actual == 0) or (aciertos == 10 and nivel_actual == 1):
|
138 |
+
nivel_actual += 1
|
139 |
+
nivel_mensaje = ["Principiante", "Intermedio", "Difícil"][nivel_actual]
|
140 |
+
st.success(f"¡Felicitaciones, has pasado al nivel {nivel_mensaje}!")
|
|
|
|
|
|
|
141 |
else:
|
142 |
+
errores += 1
|
143 |
+
resultado = f"Incorrecto, sigue practicando. Ahora tienes {errores} errores."
|
144 |
+
|
145 |
+
# Actualizar el estado del juego con los nuevos aciertos, errores y nivel.
|
146 |
+
update_game_state(aciertos, errores, nivel_actual, None, None, None)
|
147 |
+
|
148 |
+
# Solicitar explicación al modelo generativo
|
149 |
+
explicacion_input = f"Explica por qué la respuesta {respuesta_elegida} es {'correcta' if correcto else 'incorrecta'} para el problema con respuesta correcta {respuesta_correcta}."
|
150 |
+
explicacion = chat_with_model(explicacion_input)
|
151 |
+
|
152 |
+
return f"{resultado} La explicación es: {explicacion}"
|
153 |
+
|
154 |
|
155 |
# Interfaz de usuario y lógica de la aplicación
|
156 |
st.title("Desafío de Matemáticas")
|