import tkinter as tk
import random
import math

# 自定义奖品
prizes = [
    "现金888元", "手机一部", "蓝牙耳机",
    "优惠券50元", "零食大礼包", "谢谢参与",
    "红包18.8元", "豪华礼盒"
]

# 精美马卡龙配色
color_list = [
    "#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4",
    "#FECA57", "#FF9FF3", "#54A0FF", "#5F27CD"
]

root = tk.Tk()
root.title("🎁 精美幸运大转盘抽奖")
root.geometry("520x600")
root.configure(bg="#f0f4f8")
root.resizable(False, False)

canvas = tk.Canvas(root, width=450, height=450, bg="#f0f4f8", highlightthickness=0)
canvas.pack(pady=15)

angle_now = 0
is_rolling = False
sector = 360 / len(prizes)

# 绘制转盘
def draw_wheel():
    canvas.delete("all")
    r = 210
    cx, cy = 225, 225
    for i in range(len(prizes)):
        start = i * sector
        canvas.create_arc(
            cx-r, cy-r, cx+r, cy+r,
            start=start, extent=sector,
            fill=color_list[i], outline="#ffffff", width=3
        )
        mid_angle = start + sector / 2
        rad = math.radians(mid_angle)
        tx = cx + 140 * math.cos(rad)
        ty = cy + 140 * math.sin(rad)
        canvas.create_text(tx, ty, text=prizes[i], font=("微软雅黑", 9, "bold"), fill="#ffffff")
    
    canvas.create_oval(cx-60, cy-60, cx+60, cy+60, fill="#ffffff", outline="#2d3436", width=4)
    canvas.create_text(cx, cy, text="幸运抽奖", font=("微软雅黑", 16, "bold"), fill="#2d3436")
    canvas.create_polygon(225, 12, 205, 35, 245, 35, fill="#FFD700", outline="#e6a200", width=2)

# 抽奖转动
def lucky_roll():
    global angle_now, is_rolling
    if is_rolling:
        return
    is_rolling = True
    roll_btn.config(state=tk.DISABLED, bg="#cccccc")
    total_angle = random.randint(10, 15) * 360 + random.randint(0, 360)
    
    def roll_step(rest):
        global angle_now
        if rest <= 0:
            final_pos = angle_now % 360
            win_idx = int(final_pos / sector)
            win_prize = prizes[win_idx]
            result_text.config(text=f"🎉 恭喜中奖：{win_prize}")
            roll_btn.config(state=tk.NORMAL, bg="#ff4757")
            is_rolling = False
            return
        speed = max(1, rest // 80)
        angle_now += speed
        draw_wheel()
        root.after(10, roll_step, rest - speed)
    
    roll_step(total_angle)

# 标题
title = tk.Label(root, text="✨ 超级幸运大转盘 ✨", font=("微软雅黑", 20, "bold"), bg="#f0f4f8", fg="#2c3e50")
title.pack()

# 抽奖按钮
roll_btn = tk.Button(
    root, text="开始抽奖", command=lucky_roll,
    font=("微软雅黑", 15, "bold"), width=12, height=2,
    bg="#ff4757", fg="white", relief=tk.RAISED
)
roll_btn.pack(pady=10)

# 结果
result_text = tk.Label(root, text="点击按钮开启好运", font=("微软雅黑", 14), bg="#f0f4f8", fg="#34495e")
result_text.pack(pady=5)

draw_wheel()
root.mainloop()