import tkinter as tk from tkinter import messagebox class SecurityAssessmentGame: def __init__(self, master): self.master = master master.title("Игра: Аттестация объектов информатизации") self.scene_number = 0 self.setup_scene() def setup_scene(self): for widget in self.master.winfo_children(): widget.destroy() if self.scene_number == 0: self.scene_intro() elif self.scene_number == 1: self.scene_preparation() elif self.scene_number == 2: self.scene_analysis() elif self.scene_number == 3: self.scene_risk_assessment() elif self.scene_number == 4: self.scene_final() else: messagebox.showinfo("Конец", "Поздравляем! Вы прошли аттестацию.") def scene_intro(self): lbl = tk.Label(self.master, text="Добро пожаловать в игру 'Аттестация объектов информацировки'!\n" "Вы — специалист по безопасности.\n" "Ваша задача пройти все этапы аттестации системы.") lbl.pack(pady=10) btn = tk.Button(self.master, text="Начать", command=self.next_scene) btn.pack(pady=20) def scene_preparation(self): lbl = tk.Label(self.master, text="Этап 1: Подготовительный.\n" "Вы собираете документацию и формируете комиссию.\n" "Что вы делаете в первую очередь?") lbl.pack(pady=10) btn1 = tk.Button(self.master, text="Формирую команду экспертов", command=self.correct_choice) btn2 = tk.Button(self.master, text="Начинаю технический анализ", command=self.wrong_choice) btn3 = tk.Button(self.master, text="Анализирую угрозы доступа", command=self.wrong_choice) btn1.pack(pady=5) btn2.pack(pady=5) btn3.pack(pady=5) def scene_analysis(self): lbl = tk.Label(self.master, text="Этап 2: Анализ системы.\n" "Вы проводите анализ архитектуры и протоколов.\n" "Что важно определить?") lbl.pack(pady=10) btn1 = tk.Button(self.master, text="Уязвимости системы", command=self.correct_choice) btn2 = tk.Button(self.master, text="Цели пользователей", command=self.wrong_choice) btn3 = tk.Button(self.master, text="Цвет интерфейса", command=self.wrong_choice) btn1.pack(pady=5) btn2.pack(pady=5) btn3.pack(pady=5) def scene_risk_assessment(self): lbl = tk.Label(self.master, text="Этап 3: Оценка рисков.\n" "Вы вычисляете вероятность реализации угроз.\n" "Что вы делаете следующим?") lbl.pack(pady=10) btn1 = tk.Button(self.master, text="Вычисляю вероятность реализации угроз", command=self.correct_choice) btn2 = tk.Button(self.master, text="Обновляю дизайн интерфейса", command=self.wrong_choice) btn3 = tk.Button(self.master, text="Разрабатываю маркетинговую стратегию", command=self.wrong_choice) btn1.pack(pady=5) btn2.pack(pady=5) btn3.pack(pady=5) def scene_final(self): lbl = tk.Label(self.master, text="Последний этап: подготовка отчета.\n" "Вы составляет отчет и даете рекомендации.\n" "Поздравляем! Вы успешно прошли аттестацию!") lbl.pack(pady=10) btn = tk.Button(self.master, text="Завершить", command=self.master.quit) btn.pack(pady=20) def correct_choice(self): messagebox.showinfo("Отлично!", "Правильный выбор.") self.next_scene() def wrong_choice(self): messagebox.showerror("Ошибся!", "Этот выбор был неверным. Попробуйте снова.") def next_scene(self): self.scene_number += 1 self.setup_scene() if __name__ == "__main__": root = tk.Tk() app = SecurityAssessmentGame(root) root.mainloop()