import tkinter as tk
import random

def game_judge(user_choice):
    # 电脑随机出拳
    choices = ["石头", "剪刀", "布"]
    comp_choice = random.choice(choices)
    # 更新显示文本
    lab_user.config(text=f"你的选择：{user_choice}")
    lab_comp.config(text=f"电脑选择：{comp_choice}")

    global win, lose, draw
    if user_choice == comp_choice:
        res = "本局：平局"
        draw += 1
    elif (user_choice == "石头" and comp_choice == "剪刀") or \
         (user_choice == "剪刀" and comp_choice == "布") or \
         (user_choice == "布" and comp_choice == "石头"):
        res = "本局：你赢了！"
        win += 1
    else:
        res = "本局：你输了"
        lose += 1

    lab_result.config(text=res)
    lab_score.config(text=f"总战绩：赢{win}  输{lose}  平{draw}")

# 重置分数
def reset_score():
    global win, lose, draw
    win = lose = draw = 0
    lab_user.config(text="你的选择：")
    lab_comp.config(text="电脑选择：")
    lab_result.config(text="对局结果")
    lab_score.config(text="总战绩：赢0  输0  平0")

# 初始化分数
win = 0
lose = 0
draw = 0

# 创建主窗口
root = tk.Tk()
root.title("石头剪刀布")
root.geometry("400x320")
root.resizable(False, False)

# 标题
tk.Label(root, text="石头剪刀布小游戏", font=("黑体", 16)).pack(pady=15)

# 出拳按钮框架
frame_btn = tk.Frame(root)
frame_btn.pack(pady=8)

tk.Button(frame_btn, text="石头", width=8, command=lambda: game_judge("石头")).grid(row=0, column=0, padx=5)
tk.Button(frame_btn, text="剪刀", width=8, command=lambda: game_judge("剪刀")).grid(row=0, column=1, padx=5)
tk.Button(frame_btn, text="布", width=8, command=lambda: game_judge("布")).grid(row=0, column=2, padx=5)

# 选择展示
lab_user = tk.Label(root, text="你的选择：", font=("宋体", 12))
lab_user.pack(pady=4)
lab_comp = tk.Label(root, text="电脑选择：", font=("宋体", 12))
lab_comp.pack(pady=4)

# 对局结果
lab_result = tk.Label(root, text="对局结果", font=("宋体", 13, "bold"), fg="red")
lab_result.pack(pady=8)

# 总分面板
lab_score = tk.Label(root, text="总战绩：赢0  输0  平0", font=("宋体", 11))
lab_score.pack(pady=5)

# 重置按钮
tk.Button(root, text="重置分数", command=reset_score).pack(pady=12)

root.mainloop()