Starchik1 commited on
Commit
74e6007
·
verified ·
1 Parent(s): fe7df62

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -12
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
- else:
53
- st.error(f"Неправильно. Правильный ответ: {options[correct_answer - 1]}")
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.experimental_set_query_params(current_question=0)
86
- st.stop() # Завершить текущий рендеринг
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 тест")