Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -110,24 +110,28 @@ elif mode == "Idioms in sentences":
|
|
| 110 |
|
| 111 |
elif mode == "Quiz time!":
|
| 112 |
|
| 113 |
-
st.header("🎮Quiz")
|
| 114 |
|
| 115 |
if "xp" not in st.session_state:
|
| 116 |
st.session_state.xp = 0
|
| 117 |
|
| 118 |
if "used_structures" not in st.session_state:
|
| 119 |
st.session_state.used_structures = set()
|
| 120 |
-
|
| 121 |
if "used_questions" not in st.session_state:
|
| 122 |
st.session_state.used_questions = set()
|
| 123 |
|
| 124 |
st.metric("XP", st.session_state.xp)
|
| 125 |
|
|
|
|
| 126 |
if "quiz" not in st.session_state:
|
| 127 |
-
st.session_state.quiz = generate_adaptive_quiz(
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
|
|
|
|
|
|
|
|
|
| 131 |
|
| 132 |
quiz = st.session_state.quiz
|
| 133 |
|
|
@@ -136,13 +140,13 @@ elif mode == "Quiz time!":
|
|
| 136 |
|
| 137 |
user_answer = st.radio(
|
| 138 |
"Choose your answer:",
|
| 139 |
-
quiz["options"]
|
| 140 |
-
key=st.session_state.question_id
|
| 141 |
)
|
| 142 |
|
|
|
|
| 143 |
if st.button("Submit"):
|
| 144 |
|
| 145 |
-
correct = user_answer == quiz["answer"]
|
| 146 |
update_analytics(conn, quiz["answer"], correct)
|
| 147 |
|
| 148 |
if correct:
|
|
@@ -151,6 +155,7 @@ elif mode == "Quiz time!":
|
|
| 151 |
else:
|
| 152 |
st.error(f"Wrong! Correct answer: {quiz['answer']}")
|
| 153 |
|
|
|
|
| 154 |
if st.button("New Question"):
|
| 155 |
|
| 156 |
new_quiz = generate_adaptive_quiz(
|
|
@@ -160,11 +165,12 @@ elif mode == "Quiz time!":
|
|
| 160 |
st.session_state.used_questions,
|
| 161 |
st.session_state.used_structures
|
| 162 |
)
|
| 163 |
-
|
|
|
|
| 164 |
st.session_state.used_questions.add(new_quiz["answer"])
|
|
|
|
| 165 |
st.session_state.quiz = new_quiz
|
| 166 |
-
|
| 167 |
-
|
| 168 |
st.rerun()
|
| 169 |
|
| 170 |
|
|
|
|
| 110 |
|
| 111 |
elif mode == "Quiz time!":
|
| 112 |
|
| 113 |
+
st.header("🎮 Quiz")
|
| 114 |
|
| 115 |
if "xp" not in st.session_state:
|
| 116 |
st.session_state.xp = 0
|
| 117 |
|
| 118 |
if "used_structures" not in st.session_state:
|
| 119 |
st.session_state.used_structures = set()
|
| 120 |
+
|
| 121 |
if "used_questions" not in st.session_state:
|
| 122 |
st.session_state.used_questions = set()
|
| 123 |
|
| 124 |
st.metric("XP", st.session_state.xp)
|
| 125 |
|
| 126 |
+
# ---------- INIT QUIZ ----------
|
| 127 |
if "quiz" not in st.session_state:
|
| 128 |
+
st.session_state.quiz = generate_adaptive_quiz(
|
| 129 |
+
conn,
|
| 130 |
+
idiom_map,
|
| 131 |
+
examples_map,
|
| 132 |
+
st.session_state.used_questions,
|
| 133 |
+
st.session_state.used_structures
|
| 134 |
+
)
|
| 135 |
|
| 136 |
quiz = st.session_state.quiz
|
| 137 |
|
|
|
|
| 140 |
|
| 141 |
user_answer = st.radio(
|
| 142 |
"Choose your answer:",
|
| 143 |
+
quiz["options"]
|
|
|
|
| 144 |
)
|
| 145 |
|
| 146 |
+
# ---------- SUBMIT ----------
|
| 147 |
if st.button("Submit"):
|
| 148 |
|
| 149 |
+
correct = (user_answer == quiz["answer"])
|
| 150 |
update_analytics(conn, quiz["answer"], correct)
|
| 151 |
|
| 152 |
if correct:
|
|
|
|
| 155 |
else:
|
| 156 |
st.error(f"Wrong! Correct answer: {quiz['answer']}")
|
| 157 |
|
| 158 |
+
# ---------- NEW QUESTION ----------
|
| 159 |
if st.button("New Question"):
|
| 160 |
|
| 161 |
new_quiz = generate_adaptive_quiz(
|
|
|
|
| 165 |
st.session_state.used_questions,
|
| 166 |
st.session_state.used_structures
|
| 167 |
)
|
| 168 |
+
|
| 169 |
+
# store used items properly
|
| 170 |
st.session_state.used_questions.add(new_quiz["answer"])
|
| 171 |
+
|
| 172 |
st.session_state.quiz = new_quiz
|
| 173 |
+
|
|
|
|
| 174 |
st.rerun()
|
| 175 |
|
| 176 |
|