import tkinter as tk
import random

popup_count = 0
TARGET_COUNT = 100


def create_tip_window(main_root):
    global popup_count
    if popup_count >= TARGET_COUNT:
        return

    screen_w = main_root.winfo_screenwidth()
    screen_h = main_root.winfo_screenheight()
    base_win_w, base_win_h = 250, 60
    final_win_w, final_win_h = base_win_w * 2, base_win_h * 2

    if popup_count == TARGET_COUNT - 1:

        x = (screen_w - final_win_w) // 2
        y = (screen_h - final_win_h) // 2
        win_w, win_h = final_win_w, final_win_h
        tip_text = "我喜欢你"
        bg_color = "lightpink"
        font_style = ('微软雅黑', 24, 'bold')
        border_width = 5
        border_color = "#FF69B4"
    else:

        x = random.randint(0, screen_w - base_win_w)
        y = random.randint(0, screen_h - base_win_h)
        win_w, win_h = base_win_w, base_win_h
        tips = [
            '多喝水哦~', '保持微笑呀', '每天都要元气满满', '记得吃水果', '保持好心情',
            '好好爱自己', '梦想成真', '期待下一次见面', '顺顺利利', '早点休息',
            '愿所有烦恼都消失', '别熬夜', '今天过得开心嘛', '天冷了，多穿衣服', '照顾好自己', '我永远陪着你'
        ]
        bg_colors = [
            'skyblue', 'lightgreen', 'lavender', 'lightyellow', 'plum',
            'coral', 'bisque', 'aquamarine', 'mistyrose', 'honeydew'
        ]
        tip_text = random.choice(tips)
        bg_color = random.choice(bg_colors)
        font_style = ('微软雅黑', 14)
        border_width = 0
        border_color = "white"

    tip_win = tk.Toplevel(main_root)
    tip_win.title('温馨提示' if popup_count < TARGET_COUNT - 1 else 'Special Message')
    tip_win.geometry(f"{win_w}x{win_h}+{x}+{y}")
    tip_win.attributes('-topmost', True)
    tip_win.attributes('-alpha', 0.85)
    tip_win.config(borderwidth=border_width, relief="solid", bg=border_color)

    label = tk.Label(
        tip_win,
        text=tip_text,
        bg=bg_color,
        font=font_style,
        width=30 if popup_count == TARGET_COUNT - 1 else 20,
        height=4 if popup_count == TARGET_COUNT - 1 else 2,
        wraplength=final_win_w - 40 if popup_count == TARGET_COUNT - 1 else base_win_w - 20,
        justify='center'
    )
    label.pack(padx=10, pady=10, fill='both', expand=True)

    popup_count += 1


def main():
    root = tk.Tk()
    root.withdraw()

    def generate_loop():
        create_tip_window(root)
        if popup_count < TARGET_COUNT:
            root.after(60, generate_loop)

    generate_loop()

    def on_main_close():
        for child in root.winfo_children():
            child.destroy()
        root.destroy()

    root.protocol("WM_DELETE_WINDOW", on_main_close)

    root.mainloop()


if __name__ == "__main__":
    main()