sairate 5488a216f2 feat(第7讲 字母卡牌): 实现记忆游戏并添加开始界面
- 新增 jiyi.py 文件,实现字母翻牌记忆游戏功能
- 添加 youxijiemian.py 文件,创建游戏开始界面
- 使用 turtle 和 tkinter 模块分别实现游戏和界面
- 支持选择不同难度的游戏模式
2025-11-16 13:29:06 +08:00

65 lines
2.0 KiB
Python

import tkinter as tk
import time
from tkinter import messagebox
# 创建主窗口
root = tk.Tk()
root.geometry("300x400+500+200") # 设置窗口大小
root.title("10秒挑战")
bg_image = tk.PhotoImage(file = '十秒挑战.png')
bg_label = tk.Label(root, image = bg_image)
bg_label.place(x=0, y=0, relwidth=1, relheight=1)
# 初始化运行状态
flag = False
# 定期更新显示时间
def update_time():
if flag:
now = time.time()
timex = abs(now - start_time)
timex_label.config(text=f"时间:{timex:.3f}\n")
root.after(10, update_time) # 10ms 后更新一次
# 根据当前状态开始或停止计时
def change():
global flag, start_time
if not flag: # 如果计时尚未开始
flag = True
start_time = time.time() # 获取当前时间戳
update_time() # 开始更新时间显示
else: # 如果计时已经开始
flag = False # 停止更新时间显示
end_time = time.time() # 获取当前时间戳
timex =end_time - start_time # 计算实际耗时
goal = 10 # 目标耗时
# 计算时间差
time_difference = abs(timex - goal)
# 更新显示
timex_label.config(text=f"实际时间:{timex:.3f}\n误差:{time_difference:.3f}")
# 显示结果
if f'{time_difference:.3f}' == '0.000':
messagebox.showinfo("结果","难以置信!你就是掌控时间的神!")
else:
messagebox.showinfo("结果","还差亿点点,再接再厉吧!")
# 创建标签
title_label = tk.Label(root, text="10 秒挑战", font=("楷体", 16))
title_label.pack(pady=(72,10))
# 创建时间显示标签
timex_label = tk.Label(root, text="点击按钮开始挑战\n", font=("楷体", 12))
timex_label.pack(pady=(22,17))
# 创建按钮并设置图片
btn_photo = tk.PhotoImage(file = '按钮.png')
btn = tk.Button(root, image=btn_photo, command=change)
btn.pack(pady=20)
# 运行Tkinter主循环
root.mainloop()