riabayonaor commited on
Commit
26f7970
1 Parent(s): 1930bfd

Update app.py

Browse files

mejora en el manejo de respuestas

Files changed (1) hide show
  1. app.py +24 -19
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 == 2: # Sistema 3x3
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: # Ecuación lineal
132
  correcto = abs(respuesta_elegida - respuesta_correcta) < tolerancia
 
 
 
133
  if correcto:
134
- resultado = "¡Correcto! +1 punto."
135
- aciertos, errores, nivel, _, _, _ = get_game_state()
136
- if aciertos >= 5 and nivel == 0:
137
- nivel = 1
138
- st.success("¡Felicitaciones, has pasado al nivel Intermedio: Sistemas de ecuaciones lineales 2x2!")
139
- elif aciertos >= 10 and nivel == 1:
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
- resultado = "Incorrecto, sigue practicando."
145
- aciertos, errores, nivel, _, _, _ = get_game_state()
146
- update_game_state(aciertos, errores + 1, nivel, None, None, None)
147
- explicacion = chat_with_model(f"Explica el problema y por qué la respuesta {respuesta_elegida} es {'correcta' if correcto else 'incorrecta'}.")
148
- return resultado + f" Escogiste la respuesta: {respuesta_elegida}. La respuesta correcta es: {respuesta_correcta}.\n{explicacion}"
 
 
 
 
 
 
 
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")