riabayonaor commited on
Commit
f05565e
1 Parent(s): 17cf05a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -0
app.py CHANGED
@@ -109,6 +109,42 @@ def generar_sistema_ecuaciones_3x3_y_respuestas():
109
  sistema = f"{a}x + {b}y + {c}z = {e}\n\n\n{d}x + {f}y + {g}z = {h}\n\n\n{i}x + {j}y + {k}z = {l}"
110
  return sistema, respuestas, respuestas_correctas
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  # Aquí va la función get_ui_elements que falta
113
  def get_ui_elements():
114
  """Genera los elementos de la interfaz de usuario según el nivel actual."""
 
109
  sistema = f"{a}x + {b}y + {c}z = {e}\n\n\n{d}x + {f}y + {g}z = {h}\n\n\n{i}x + {j}y + {k}z = {l}"
110
  return sistema, respuestas, respuestas_correctas
111
 
112
+ def manejar_respuesta(respuesta_elegida, respuesta_correcta, nivel):
113
+ """Evalúa la respuesta del usuario, proporcionando retroalimentación y una explicación."""
114
+ tolerancia = 1e-9
115
+ correcto = False
116
+ # Convierte la respuesta elegida a float o tuple de floats si es necesario
117
+ if isinstance(respuesta_correcta, tuple):
118
+ respuesta_elegida = tuple(map(float, respuesta_elegida.split(', ')))
119
+ else:
120
+ respuesta_elegida = float(respuesta_elegida)
121
+
122
+ # Comprueba si la respuesta es correcta dentro de una tolerancia
123
+ if nivel == 2: # Sistema 3x3
124
+ correcto = all(abs(r_e - r_c) < tolerancia for r_e, r_c in zip(respuesta_elegida, respuesta_correcta))
125
+ elif nivel == 1: # Sistema 2x2
126
+ correcto = all(abs(r_e - r_c) < tolerancia for r_e, r_c in zip(respuesta_elegida, respuesta_correcta))
127
+ else: # Ecuación lineal
128
+ correcto = abs(respuesta_elegida - respuesta_correcta) < tolerancia
129
+
130
+ if correcto:
131
+ resultado = "¡Correcto! +1 punto."
132
+ st.session_state.aciertos += 1
133
+ # Aquí podrías poner la lógica para cambiar de nivel si es necesario
134
+ if st.session_state.aciertos >= 5 and nivel == 0:
135
+ st.session_state.nivel = 1
136
+ st.success("¡Felicitaciones, has pasado al nivel Intermedio: Sistemas de ecuaciones lineales 2x2!")
137
+ elif st.session_state.aciertos >= 10 and nivel == 1:
138
+ st.session_state.nivel = 2
139
+ st.success("¡Felicitaciones, has pasado al nivel Difícil: Sistemas de ecuaciones lineales 3x3!")
140
+ else:
141
+ resultado = "Incorrecto, sigue practicando."
142
+ st.session_state.errores += 1
143
+
144
+ explicacion = chat_with_model(f"Explica el problema y por qué la respuesta {respuesta_elegida} es {'correcta' si correcto else 'incorrecta'}.")
145
+ return resultado + f" Escogiste la respuesta: {respuesta_elegida}. La respuesta correcta es: {respuesta_correcta}.\n{explicacion}"
146
+
147
+
148
  # Aquí va la función get_ui_elements que falta
149
  def get_ui_elements():
150
  """Genera los elementos de la interfaz de usuario según el nivel actual."""