import tkinter as tk
from tkinter import ttk
import random

# ---------------------- 单词库（可自行添加）----------------------
word_list = [
    {"english": "abandon", "chinese": "v. 放弃，抛弃"},
    {"english": "achieve", "chinese": "v. 实现，达到"},
    {"english": "benefit", "chinese": "n. 利益 v. 有益于"},
    {"english": "cancel", "chinese": "v. 取消"},
    {"english": "destroy", "chinese": "v. 破坏，摧毁"},
    {"english": "effort", "chinese": "n. 努力"},
    {"english": "familiar", "chinese": "adj. 熟悉的"},
    {"english": "generous", "chinese": "adj. 慷慨的"},
    {"english": "harmony", "chinese": "n. 和谐"},
    {"english": "ignore", "chinese": "v. 忽视，不理睬"},
]

# ---------------------- 主程序 ----------------------
class WordApp:
    def __init__(self, root):
        self.root = root
        self.root.title("英语单词背诵小程序")
        self.root.geometry("500x350")  # 窗口大小
        self.root.resizable(False, False)

        # 当前单词索引
        self.current_word = None
        # 打乱单词顺序
        self.random_words = word_list.copy()
        random.shuffle(self.random_words)

        # ========== UI 界面 ==========
        # 标题
        self.title_label = ttk.Label(
            root, text="📚 单词背诵", font=("微软雅黑", 18, "bold")
        )
        self.title_label.pack(pady=15)

        # 英文单词显示
        self.eng_label = ttk.Label(
            root, text="", font=("Arial", 24, "bold")
        )
        self.eng_label.pack(pady=10)

        # 中文释义显示
        self.chn_label = ttk.Label(
            root, text="", font=("微软雅黑", 16), foreground="#333333"
        )
        self.chn_label.pack(pady=5)

        # 按钮框架
        self.frame = ttk.Frame(root)
        self.frame.pack(pady=20)

        # 按钮
        self.show_btn = ttk.Button(
            self.frame, text="显示释义", command=self.show_meaning, width=12
        )
        self.show_btn.grid(row=0, column=0, padx=10)

        self.next_btn = ttk.Button(
            self.frame, text="下一个单词", command=self.next_word, width=12
        )
        self.next_btn.grid(row=0, column=1, padx=10)

        # 一开始自动显示第一个单词
        self.next_word()

    # 显示中文释义
    def show_meaning(self):
        if self.current_word:
            self.chn_label.config(text=self.current_word["chinese"])

    # 切换下一个单词
    def next_word(self):
        if not self.random_words:
            # 单词背完后重新洗牌
            self.random_words = word_list.copy()
            random.shuffle(self.random_words)

        # 取出一个单词
        self.current_word = self.random_words.pop(0)
        # 显示英文，隐藏中文
        self.eng_label.config(text=self.current_word["english"])
        self.chn_label.config(text="")

# 启动程序
if __name__ == "__main__":
    main_root = tk.Tk()
    app = WordApp(main_root)
    main_root.mainloop()