import tkinter as tk from tkinter import messagebox class SimpleGame: def __init__(self, root): self.root = root self.root.title("Викторина по лекции") self.root.geometry("500x450") self.root.configure(bg="#1e1e2e") # Данные игры self.score = 0 self.current = 0 # Вопросы и ответы (из лекции) self.questions = [ {"q": "Внезапный отказ — это...", "a": "Резкое нарушение работоспособности"}, {"q": "Постепенный отказ свидетельствует о...", "a": "Точности"}, {"q": "Прерывистые отказы иначе называют...", "a": "Сбои"}, {"q": "Что помогает от прерывистых отказов в дискретных системах?", "a": "Коды"}, {"q": "Сколько групп методов восстановления? (цифра)", "a": "4"} ] # Интерфейс self.score_label = tk.Label( root, text=f"Счёт: {self.score}", font=("Arial", 14, "bold"), bg="#1e1e2e", fg="#89b4fa" ) self.score_label.pack(pady=10) self.question_label = tk.Label( root, text="", font=("Arial", 13), bg="#1e1e2e", fg="white", wraplength=450, justify="center" ) self.question_label.pack(pady=40) self.entry = tk.Entry( root, font=("Arial", 12), justify="center", bg="#313244", fg="white", insertbackground="white" ) self.entry.pack(pady=10) self.entry.bind("", lambda e: self.check_answer()) self.check_btn = tk.Button( root, text="Ответить", font=("Arial", 12), bg="#89b4fa", fg="#1e1e2e", activebackground="#89b4fa", cursor="hand2", command=self.check_answer ) self.check_btn.pack(pady=10) self.feedback = tk.Label( root, text="", font=("Arial", 11), bg="#1e1e2e", fg="#a6e3a1" ) self.feedback.pack(pady=20) self.next_btn = tk.Button( root, text="Следующий вопрос →", font=("Arial", 11), bg="#585b70", fg="white", state="disabled", cursor="hand2", command=self.next_question ) self.next_btn.pack(pady=10) # Загружаем первый вопрос self.show_question() def show_question(self): self.question_label.config(text=f"{self.questions[self.current]['q']}") self.entry.delete(0, tk.END) self.entry.focus() self.feedback.config(text="") self.next_btn.config(state="disabled") self.check_btn.config(state="normal") def check_answer(self): user_answer = self.entry.get().strip().lower() correct = self.questions[self.current]["a"].lower() if user_answer == correct: self.score += 1 self.score_label.config(text=f"Счёт: {self.score}") self.feedback.config(text=" Правильно! +1 балл", fg="#a6e3a1") else: self.feedback.config( text=f" Неправильно! Правильный ответ: {self.questions[self.current]['a']}", fg="#f38ba8" ) self.check_btn.config(state="disabled") self.next_btn.config(state="normal") def next_question(self): self.current += 1 if self.current < len(self.questions): self.show_question() else: messagebox.showinfo( "Игра окончена", f"Игра завершена!\n\nВаш счёт: {self.score} из {len(self.questions)}" ) self.restart() def restart(self): self.score = 0 self.current = 0 self.score_label.config(text=f"Счёт: {self.score}") self.show_question() if __name__ == "__main__": root = tk.Tk() game = SimpleGame(root) root.mainloop()