import tkinter as tk
from tkinter import ttk,messagebox
import random

# 暗黑风数学练习器（四则运算+乘法表）
class MathTrainer:
    def __init__(self,root):
        self.root=root
        self.root.title("📐 数学题练习器")
        self.root.geometry("450x380")
        self.root.resizable(False,False)
        self.root.configure(bg="#2b2b2b")
        self.style=ttk.Style()
        self.style.theme_use("clam")
        self.style.configure("TButton",font=("微软雅黑",10),padding=5,background="#444444",foreground="#f0f0f0")

        self.ans=0
        self.score=0
        self.count=0
        self.create_ui()
        self.new_question()

    def create_ui(self):
        tk.Label(self.root,text="🧮 数学练习小能手",bg="#2b2b2b",fg="white",font=("微软雅黑",14)).pack(pady=12)
        self.mode=ttk.Combobox(self.root,state="readonly")
        self.mode["values"]=["四则运算","九九乘法表"]
        self.mode.current(0)
        self.mode.pack()

        self.q_label=tk.Label(self.root,text="",bg="#383838",fg="white",font=("微软雅黑",18),width=25,height=3)
        self.q_label.pack(pady=15)

        tk.Label(self.root,text="请输入答案：",bg="#2b2b2b",fg="white").pack()
        self.entry=ttk.Entry(self.root,font=("微软雅黑",15),width=15,justify="center")
        self.entry.pack(pady=5)

        frame=tk.Frame(self.root,bg="#2b2b2b")
        frame.pack(pady=15)
        ttk.Button(frame,text="✅ 提交答案",command=self.check_ans).grid(row=0,column=0,padx=8)
        ttk.Button(frame,text="🔁 下一题",command=self.new_question).grid(row=0,column=1,padx=8)

        self.score_text=tk.Label(self.root,text="✅ 答对：0 题",bg="#2b2b2b",fg="#88d8f0",font=("微软雅黑",11))
        self.score_text.pack()

    # 生成题目
    def new_question(self):
        self.entry.delete(0,tk.END)
        if self.mode.get()=="四则运算":
            a=random.randint(1,99)
            b=random.randint(1,99)
            sym=random.choice(["+","-","*"])
            if sym=="+":self.ans=a+b
            elif sym=="-":self.ans=a-b
            else:self.ans=a*b
            self.q_label.config(text=f"{a} {sym} {b} = ?")
        else:
            a=random.randint(1,9)
            b=random.randint(1,9)
            self.ans=a*b
            self.q_label.config(text=f"{a} × {b} = ?")

    # 校验答案
    def check_ans(self):
        try:
            num=int(self.entry.get())
        except:
            messagebox.showerror("错误","请输入数字！")
            return
        if num==self.ans:
            self.score+=1
            messagebox.showinfo("正确","🎉 回答正确！")
        else:
            messagebox.showwarning("错误",f"❌ 正确答案是：{self.ans}")
        self.count+=1
        self.score_text.config(text=f"✅ 答对：{self.score} / 总题：{self.count}")

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