import tkinter as tk
from tkinter import messagebox

quiz_data = [
    {
         "question": "What is the capital of France?",
         "options": ["Berlin", "Madrid", "Paris", "Rome"],
         "answer": "Paris"
    },
     {
        "question": "Which language is used for web apps?",
        "options": ["Python", "JavaScript", "C++", "Java"],
        "answer": "JavaScript"
    },
    {
        "question": "What is 2 + 2?",
        "options": ["3", "4", "22", "5"],
        "answer": "4"
    }
]

class QuizApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Quiz App")
        self.root.geometry("400x300")

        self.score = 0
        self.q_index = 0

        self.question_label = tk.Label(root, text="", wraplength=350, font=("Arial", 14))
        self.question_label.pack(pady=20)

        self.var = tk.StringVar(value="")
        self.radio_buttons = []
        for i in range(4):
            rb = tk.Radiobutton(root, text="", variable=self.var, value="", font=("Arial", 12))
            rb.pack(anchor="w", padx=50)
            self.radio_buttons.append(rb)

        self.next_button = tk.Button(root, text="Next", command=self.next_question)
        self.next_button.pack(pady=20)

        self.load_question()

    def load_question(self):
        if self.q_index < len(quiz_data):
            q = quiz_data[self.q_index]
            self.question_label.config(text=q["question"])
            self.var.set("")  # clear selection
            for i, option in enumerate(q["options"]):
                self.radio_buttons[i].config(text=option, value=option)
        else:
            self.show_result()

    def next_question(self):
        selected = self.var.get()
        if selected == "":
            messagebox.showwarning("Warning", "Please select an option!")
            return

        if selected == quiz_data[self.q_index]["answer"]:
            self.score += 1

        self.q_index += 1
        self.load_question()

    def show_result(self):
        messagebox.showinfo("Quiz Completed", f"Your Score: {self.score}/{len(quiz_data)}")
        self.root.destroy()

if __name__ == "__main__":
    root = tk.Tk()
    app = QuizApp(root)
    root.mainloop()