Update app.py
Browse files
app.py
CHANGED
@@ -32,8 +32,9 @@ def iq_test():
|
|
32 |
if "current_question" not in st.session_state:
|
33 |
st.session_state.current_question = 0
|
34 |
st.session_state.score = 0
|
|
|
35 |
|
36 |
-
#
|
37 |
if st.session_state.current_question < len(questions):
|
38 |
current_q = questions[st.session_state.current_question]
|
39 |
|
@@ -47,19 +48,14 @@ def iq_test():
|
|
47 |
for i, option in enumerate(options, 1):
|
48 |
if st.button(option, key=f"q{st.session_state.current_question}_opt{i}"):
|
49 |
if i == correct_answer:
|
50 |
-
st.success("Правильно!")
|
51 |
st.session_state.score += 1
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
# Переход к следующему вопросу
|
56 |
st.session_state.current_question += 1
|
57 |
-
|
58 |
-
# Перезагрузка без использования experimental_rerun
|
59 |
-
st.experimental_set_query_params(current_question=st.session_state.current_question)
|
60 |
-
st.stop() # Завершить текущий рендеринг
|
61 |
else:
|
62 |
-
# Вывод
|
63 |
st.header("Тест завершен!")
|
64 |
st.write(f"Вы набрали {st.session_state.score} из {len(questions)} баллов.")
|
65 |
|
@@ -78,12 +74,19 @@ def iq_test():
|
|
78 |
else:
|
79 |
st.error("Результат низкий. Продолжайте тренироваться!")
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
# Сбросить тест
|
82 |
if st.button("Пройти тест заново"):
|
83 |
st.session_state.current_question = 0
|
84 |
st.session_state.score = 0
|
85 |
-
st.
|
86 |
-
st.
|
87 |
|
88 |
if __name__ == "__main__":
|
89 |
st.title("IQ тест")
|
|
|
32 |
if "current_question" not in st.session_state:
|
33 |
st.session_state.current_question = 0
|
34 |
st.session_state.score = 0
|
35 |
+
st.session_state.responses = [] # Хранение ответов пользователя
|
36 |
|
37 |
+
# Логика отображения вопросов
|
38 |
if st.session_state.current_question < len(questions):
|
39 |
current_q = questions[st.session_state.current_question]
|
40 |
|
|
|
48 |
for i, option in enumerate(options, 1):
|
49 |
if st.button(option, key=f"q{st.session_state.current_question}_opt{i}"):
|
50 |
if i == correct_answer:
|
|
|
51 |
st.session_state.score += 1
|
52 |
+
# Сохраняем выбор пользователя
|
53 |
+
st.session_state.responses.append({"question": current_q["question"], "selected": option, "correct": options[correct_answer - 1]})
|
|
|
54 |
# Переход к следующему вопросу
|
55 |
st.session_state.current_question += 1
|
56 |
+
st.experimental_rerun() # Перезагрузка страницы для следующего вопроса
|
|
|
|
|
|
|
57 |
else:
|
58 |
+
# Вывод результатов в конце теста
|
59 |
st.header("Тест завершен!")
|
60 |
st.write(f"Вы набрали {st.session_state.score} из {len(questions)} баллов.")
|
61 |
|
|
|
74 |
else:
|
75 |
st.error("Результат низкий. Продолжайте тренироваться!")
|
76 |
|
77 |
+
# Показать ответы на вопросы
|
78 |
+
st.write("\nПодробные результаты:")
|
79 |
+
for response in st.session_state.responses:
|
80 |
+
st.write(f"Вопрос: {response['question']}")
|
81 |
+
st.write(f"Ваш ответ: {response['selected']}")
|
82 |
+
st.write(f"Правильный ответ: {response['correct']}\n")
|
83 |
+
|
84 |
# Сбросить тест
|
85 |
if st.button("Пройти тест заново"):
|
86 |
st.session_state.current_question = 0
|
87 |
st.session_state.score = 0
|
88 |
+
st.session_state.responses = []
|
89 |
+
st.experimental_rerun() # Перезагрузка для сброса состояния
|
90 |
|
91 |
if __name__ == "__main__":
|
92 |
st.title("IQ тест")
|