import tkinter as tk
import random

class RiddleGame:
    def __init__(self, root):
        self.root = root
        self.root.title("随机谜语 & 脑筋急转弯")
        self.root.geometry("560x480")
        self.root.resizable(False, False)
        self.root.configure(bg="#f0f4f8")

        # 题库
        self.riddles = [
            ("什么东西早晨四条腿，中午两条腿，晚上三条腿？", "人"),
            ("什么东西越洗越脏？", "水"),
            ("什么路最窄？", "冤家路窄"),
            ("什么东西有头无脚？", "砖头"),
            ("一年四季都盛开的花是什么花？", "塑料花"),
            ("什么球不能踢？", "地球"),
            ("什么书里毛病最多？", "医书"),
            ("什么东西越热越爱出来？", "汗"),
            ("什么河不流水？", "银河"),
            ("什么帽子不能戴？", "螺丝帽"),
            ("什么东西打碎了自然会和好？", "水面"),
            ("什么东西有五个头，但人不觉得它怪？", "手和脚"),
        ]

        self.brain_teasers = [
            ("太平洋的中间是什么？", "平字"),
            ("什么字全世界通用？", "阿拉伯数字"),
            ("铁锤锤鸡蛋为什么锤不破？", "锤当然不会破"),
            ("什么时候有人敲门，你绝不会说请进？", "上厕所的时候"),
            ("什么东西人们都不想要？", "病"),
            ("狼来了，猜一种水果？", "杨桃（羊逃）"),
            ("羊来了，猜一种水果？", "草莓（草没）"),
            ("什么动物最容易摔倒？", "狐狸，因为它很狡猾（脚滑）"),
            ("什么水永远用不完？", "泪水"),
            ("什么东西晚上才会长出尾巴？", "流星"),
            ("什么东西比乌鸦更讨厌？", "乌鸦嘴"),
            ("牙医靠什么吃饭？", "嘴巴"),
            ("什么门永远关不上","球门"),
            ("打破什么东西不仅不会被骂，反而人人高兴？","打破纪录"),
            ("冬瓜、黄瓜、西瓜、南瓜都能吃，什么瓜不能吃？","傻瓜"),
            ("什么车子寸步难行？","风车"),
            ("一年四季都盛开的花是什么花？","塑料花"),
            ("用什么拖地最干净？","用力"),
            ("一个人从飞机上掉下来，为什么没摔死？","飞机停在地面"),
            ("房间里有十根点着的蜡烛，被风吹灭三根，最后剩几根？","三根，其余烧完了"),
            ("一只候鸟从南方飞到北方要用一小时，从北方飞回南方却要两个半小时，为啥？","两个 “半小时” 加起来就是一小时"),
            ("什么东西明明是你的，别人却用得比你多？","你的名字"),
            ("小白加小白等于什么？","小白兔<two>"),
            ("布和纸最怕什么？","不（布）怕一万，只（纸）怕万一"),
            ("麒麟到了北极会变成什么？","冰淇淋<冰麒麟>"),
        ]

        self.category = tk.StringVar(value="混合")
        self.current_q = ("", "")

        # ===== 界面布局 =====
        tk.Label(root, text="🧠 脑筋急转弯 & 谜语", font=("微软雅黑", 20, "bold"),
                fg="#2c3e50", bg="#f0f4f8").pack(pady=18)

        # 分类选择
        cat_frame = tk.Frame(root, bg="#f0f4f8")
        cat_frame.pack(pady=5)
        tk.Label(cat_frame, text="题库类型：", font=("微软雅黑", 12),
                bg="#f0f4f8").pack(side="left")
        for cat in ["谜语", "脑筋急转弯", "混合"]:
            tk.Radiobutton(cat_frame, text=cat, variable=self.category, value=cat,
                          font=("微软雅黑", 11), bg="#f0f4f8",
                          command=self.next_question).pack(side="left", padx=8)

        # 题目区域
        q_frame = tk.LabelFrame(root, text="题目", font=("微软雅黑", 13, "bold"),
                               fg="#2980b9", bg="white", bd=1)
        q_frame.pack(padx=30, pady=15, fill="both", expand=True)
        self.question_label = tk.Label(q_frame, text="", font=("微软雅黑", 14),
                                      wraplength=460, justify="left", bg="white",
                                      fg="#2c3e50")
        self.question_label.pack(padx=20, pady=20)

        # 答案区域
        a_frame = tk.LabelFrame(root, text="答案", font=("微软雅黑", 13, "bold"),
                               fg="#27ae60", bg="white", bd=1)
        a_frame.pack(padx=30, pady=5, fill="both", expand=True)
        self.answer_label = tk.Label(a_frame, text="点击下方按钮查看答案",
                                    font=("微软雅黑", 14), fg="#95a5a6", bg="white")
        self.answer_label.pack(padx=20, pady=15)

        # 按钮区
        btn_frame = tk.Frame(root, bg="#f0f4f8")
        btn_frame.pack(pady=18)

        tk.Button(btn_frame, text="👁️ 查看答案", font=("微软雅黑", 13, "bold"),
                 bg="#27ae60", fg="white", width=12, height=1,
                 command=self.show_answer).pack(side="left", padx=15)

        tk.Button(btn_frame, text="➡️ 下一题", font=("微软雅黑", 13, "bold"),
                 bg="#3498db", fg="white", width=12, height=1,
                 command=self.next_question).pack(side="left", padx=15)

        # 初始化第一题
        self.next_question()

    def get_pool(self):
        if self.category.get() == "谜语":
            return self.riddles
        elif self.category.get() == "脑筋急转弯":
            return self.brain_teasers
        else:
            return self.riddles + self.brain_teasers

    def next_question(self):
        pool = self.get_pool()
        self.current_q = random.choice(pool)
        self.question_label.config(text=self.current_q[0])
        self.answer_label.config(text="点击下方按钮查看答案", fg="#95a5a6")

    def show_answer(self):
        self.answer_label.config(text=self.current_q[1], fg="#c0392b")

if __name__ == "__main__":
    root = tk.Tk()
    app = RiddleGame(root)
    root.mainloop()