import tkinter as tk
import random
from tkinter import font

# ==================== 核心逻辑 ====================
def play(player_choice):
    options = ['石头', '剪刀', '布']
    computer_choice = random.choice(options)
    
    # emoji映射
    emoji_map = {'石头': '✊', '剪刀': '✌️', '布': '✋'}
    
    # 更新对战展示
    player_emoji_label.config(text=emoji_map[player_choice], fg='#333333')
    computer_emoji_label.config(text=emoji_map[computer_choice], fg='#333333')
    
    # 判断胜负
    if player_choice == computer_choice:
        result = "平局！😐"
        result_color = "#FF9800"
        score['tie'] += 1
    elif (player_choice == '石头' and computer_choice == '剪刀') or \
         (player_choice == '剪刀' and computer_choice == '布') or \
         (player_choice == '布' and computer_choice == '石头'):
        result = "你赢啦！🎉"
        result_color = "#4CAF50"
        score['win'] += 1
    else:
        result = "你输了！💪"
        result_color = "#F44336"
        score['lose'] += 1
    
    result_label.config(text=result, fg=result_color)
    update_score()

def update_score():
    score_label.config(text=f"胜: {score['win']}  负: {score['lose']}  平: {score['tie']}")

# ==================== 界面搭建 ====================
root = tk.Tk()
root.title("✨ 卡通石头剪刀布 ✨")
root.geometry("400x500")
root.resizable(False, False)
root.configure(bg='#FFF8E1')  # 暖黄色背景

# 自定义字体
title_font = ('微软雅黑', 20, 'bold')
btn_font = ('微软雅黑', 13, 'bold')
label_font = ('微软雅黑', 14)

# ---- 标题 ----
title_label = tk.Label(
    root, text="🎮 石头剪刀布 🎮", 
    font=title_font, bg='#FFF8E1', fg='#FF6F00'
)
title_label.pack(pady=(20, 10))

subtitle = tk.Label(
    root, text="~ 选出你的出战选手 ~", 
    font=('微软雅黑', 11), bg='#FFF8E1', fg='#999999'
)
subtitle.pack(pady=(0, 15))

# ---- 对战展示区（两个大emoji面对面）----
battle_frame = tk.Frame(root, bg='#FFF8E1')
battle_frame.pack(pady=15)

player_emoji_label = tk.Label(
    battle_frame, text="❓", font=('Segoe UI Emoji', 60),
    bg='#FFF8E1'
)
player_emoji_label.pack(side=tk.LEFT, padx=30)

vs_label = tk.Label(
    battle_frame, text="VS", font=('微软雅黑', 24, 'bold'),
    bg='#FFF8E1', fg='#FF6F00'
)
vs_label.pack(side=tk.LEFT, pady=15)

computer_emoji_label = tk.Label(
    battle_frame, text="❓", font=('Segoe UI Emoji', 60),
    bg='#FFF8E1'
)
computer_emoji_label.pack(side=tk.LEFT, padx=30)

# ---- 结果显示 ----
result_label = tk.Label(
    root, text="等待出拳...", font=('微软雅黑', 16, 'bold'),
    bg='#FFF8E1', fg='#666666'
)
result_label.pack(pady=10)

# ---- 按钮区 ----
btn_frame = tk.Frame(root, bg='#FFF8E1')
btn_frame.pack(pady=20)

buttons_info = [
    ('✊\n石头', '#FFCDD2', '石头'),
    ('✌️\n剪刀', '#C8E6C9', '剪刀'),
    ('✋\n布',   '#BBDEFB', '布'),
]

for text, color, choice in buttons_info:
    btn = tk.Button(
        btn_frame, text=text,
        font=('微软雅黑', 12, 'bold'),
        width=8, height=3,
        bg=color, fg='#333333',
        activebackground=color,
        relief=tk.RAISED, bd=3,
        cursor='hand2',
        command=lambda c=choice: play(c)
    )
    btn.pack(side=tk.LEFT, padx=10)

# ---- 计分板 ----
score = {'win': 0, 'lose': 0, 'tie': 0}

score_label = tk.Label(
    root, text="胜: 0  负: 0  平: 0",
    font=('微软雅黑', 12), bg='#FFF8E1', fg='#795548'
)
score_label.pack(pady=(15, 5))

# ---- 底部装饰 ----
footer = tk.Label(
    root, text="🐢 海龟编辑器出品 🐢",
    font=('微软雅黑', 9), bg='#FFF8E1', fg='#CCCCCC'
)
footer.pack(side=tk.BOTTOM, pady=10)

# ==================== 启动 ====================
root.mainloop()