Загрузка данных


import tkinter as tk
from quiz import get_questions, check_answer, get_result
from ui import show_question, show_result

# Глобальное состояние викторины
questions = []
current_index = 0
correct_count = 0


def on_answer(answer):
    """
    Вызывается когда студент нажимает кнопку с вариантом ответа.
    Проверяет ответ, обновляет счёт и переходит дальше.
    """
    global current_index, correct_count

    question = questions[current_index]

    # Проверяем ответ
    if check_answer(question, answer):
        correct_count += 1

    current_index += 1

    # Если вопросы ещё есть — показываем следующий
    if current_index < len(questions):
        show_question(
            window,
            questions[current_index],
            current_index + 1,
            len(questions),
            on_answer
        )
    else:
        # Все вопросы закончились — показываем результат
        result_text = get_result(correct_count, len(questions))
        show_result(window, result_text, start_quiz)


def start_quiz():
    """
    Запускает (или перезапускает) викторину.
    Сбрасывает счёт и индекс, загружает вопросы.
    """
    global questions, current_index, correct_count

    questions = get_questions()
    current_index = 0
    correct_count = 0

    show_question(
        window,
        questions[current_index],
        current_index + 1,
        len(questions),
        on_answer
    )


# Создаём главное окно
window = tk.Tk()
window.title("Викторина по мемам")
window.geometry("500x620")
window.configure(bg="#f0f0f0")
window.resizable(False, False)

# Запускаем викторину
start_quiz()

# Запускаем главный цикл окна
window.mainloop()