Срочно помогите написать код: Використовуючи tkinter розробіть програму-тест із всесвіту «Гаррі Поттера».
У програмі має бути:
1. Три питання щодо фільмів про Гаррі Поттера. Спосіб подання питань може бути будь-яким. Це можуть бути три кнопки та три окремі поля для введення відповідей на запитання. Або одна кнопка та одне текстове поле, в якому будуть змінюватися питання. Або одна кнопка та багато текстових полів. Вигляд вікна програми на вибір.
2. Вікно tkinter має бути оформлене максимально акуратно. Розмір вікна повинен відповідати кількості розміщеної на ньому інформації. Має бути заголовок вікна. Має бути колірне оформлення. Елементи вікна (кнопки, написи, текстові поля) мають бути розміщені акуратно.
3. По можливості має бути організований підрахунок кількості правильних відповідей.
4. По можливості вікно програми має реагувати на правильність відповідей. Наприклад, при правильній відповіді міняти свій колір на зелений, а не правильну – на червоний.
5. По можливості програма має бути естетично оформлена. Імена змінних мають відбивати суть те, що у них зберігається. Імена функцій повинні описувати те, навіщо вони створені.
6. Обов'язково має бути оформлена презентація. У презентації мають бути вказані автори роботи. Повинен бути доданий скріншот, що демонструє зовнішній вигляд готової програми. На окремих слайдах мають бути реалізовані у програмі функції. У заголовках має бути написано, навіщо ці функції призначені. Заготівля презентації додається до завдання.
Ответы
import tkinter as tk
class HarryPotterQuiz:
def __init__(self, master):
self.master = master
self.master.title("Гаррі Поттер Тест")
# Додаткові стилі та кольори
self.default_font = ("Arial", 14)
self.right_answer_color = "green"
self.wrong_answer_color = "red"
# Питання та відповіді
self.questions = ["Як називається школа, де навчається Гаррі Поттер?",
"Який день народження у Рона Вісли?",
"Хто є головним антагоністом у серії Гаррі Поттера?"]
self.answers = ["Хогвартс", "1 березня", "Волан-де-Морт"]
# Ініціалізація змінних
self.current_question_index = 0
self.score = 0
# UI елементи
self.question_label = tk.Label(self.master, text=self.questions[self.current_question_index], font=self.default_font)
self.question_label.pack()
self.answer_entry = tk.Entry(self.master, font=self.default_font)
self.answer_entry.pack()
self.submit_button = tk.Button(self.master, text="Відповісти", command=self.submit_answer)
self.submit_button.pack()
self.score_label = tk.Label(self.master, text="Ваш рахунок: {}".format(self.score), font=self.default_font)
self.score_label.pack()
def submit_answer(self):
user_answer = self.answer_entry.get()
correct_answer = self.answers[self.current_question_index]
if user_answer == correct_answer:
self.score += 1
self.score_label.configure(text="Ваш рахунок: {}".format(self.score), fg=self.right_answer_color)
else:
self.score_label.configure(fg=self.wrong_answer_color)
# Перехід до наступного питання
self.current_question_index += 1
if self.current_question_index == len(self.questions):
self.show_final_score()
else:
self.question_label.configure(text=self.questions[self.current_question_index])
self.answer_entry.delete(0, tk.END)
def show_final_score(self):
self.question_label.configure(text="Тест завершено!", fg=self.default_font)
self.answer_entry.pack_forget()
self.submit_button.pack_forget()
root = tk.Tk()
quiz = HarryPotterQuiz(root)
root.mainloop()