本文用python实现了点击小游戏程序,包含了计时、设置时间、惩罚、奖励机制
from tkinter import *
import random
from tkinter.messagebox import *
import tkinter as tk
from tkinter import ttk
import time
hp = Tk()
hp.title("Quick Click")
hp.geometry("250x140")
global 时间
时间 = 61#设置初始"时间"
try:
hp.iconbitmap("Click.ico")
except:
pass#图标设置(可选)
def 开始():
global hp
global 时间
hp.destroy()#结束开始界面进程
yx = Tk()
yx.title("Quick Click")#设置窗口标题
try:
yx.iconbitmap("Click.ico")
except:
pass#图标设置(可选)
finally:
w = yx.winfo_screenwidth()#获取屏幕宽度
h = yx.winfo_screenheight()#获取屏幕高度
width = 386
height = 304
pw = (w - width - 100)/2
ph = (h - height - 280)/2
yx.geometry("%dx%d+%d+%d"%(width,height,pw,ph))
global 得分
得分 = 0 #设置全局变量"得分"
def 开始():
global 时间
global 得分
var1.set(得分)
计时区.after(1000,开始)
时间 = int(时间) - 1
if 时间 == 0:
游戏结束 = tk.messagebox.showinfo("","游戏结束")
最终得分 = tk.messagebox.showinfo("最终得分", 得分)
yx.destroy()
pass
#游戏结束
else:
计时区["state"] = "disabled"
计时区["text"] = str(时间)
#开启计时
def 刷新按钮():
小按钮1.place(x = random.randint(10,350),y = random.randint(30,250),width = 11,height = 11)
小按钮2.place(x = random.randint(10,350),y = random.randint(30,250),width = 11,height = 11)
普通按钮1.place(x = random.randint(10,350),y = random.randint(30,250),width = 30,height = 30)
普通按钮2.place(x = random.randint(10,350),y = random.randint(30,250),width = 30,height = 30)
普通按钮3.place(x = random.randint(10,350),y = random.randint(30,250),width = 30,height = 30)
警告按钮.place(x = random.randint(10,350),y = random.randint(30,250),width = 30,height = 30)
奖励按钮.place(x = 600,y = 500,width = 30,height = 30)
#重置按钮位置
def 小点击():
global 得分
得分 = int(得分 + 2)
var1.set(得分)
刷新按钮()
yx.update()
#绿色方块+2
def 普通点击():
global 得分
得分 = int(得分 + 1)
var1.set(得分)
刷新按钮()
yx.update()
#白色方块:+1
def 警告点击():
失败 = tk.messagebox.showinfo("","你输了")
最终得分 = tk.messagebox.showinfo("最终得分", 得分)
yx.destroy()
#红色方块:游戏结束
def 奖励():
global 得分
得分 = int(得分 + 1)
var1.set(得分)
yx.update()
#隐藏奖励方块
def 帮助():
帮助1 = tk.messagebox.showinfo("提示","点击各方块有各种特殊情况")
帮助2 = tk.messagebox.showinfo("提示","白色: 普通方块")
帮助3 = tk.messagebox.showinfo("提示","绿色: 小方块,加分双倍")
帮助4 = tk.messagebox.showinfo("提示","红色: 点击后游戏结束")
#帮助
var1 = tk.StringVar()
标签 = Label(yx,text = "得分",width = 5,height = 1,font = ("微软雅黑",11))#得分标签
得分区 = Label(yx,textvariable = var1,bd = 2,font = ("微软雅黑",11))#得分记录
计时标签 = Label(yx,text = "时间",width = 5,height = 1,font = ("微软雅黑",11))#计时标签
计时区 = Button(yx,font = ("微软雅黑",11),relief = "flat")#计时记录
游戏框架 = Canvas(yx,bg = "black",bd = 2)#游戏区域
小按钮1 = Button(yx,bg = "green",bd = 1,command = 小点击)#小按钮1
小按钮2 = Button(yx,bg = "green",bd = 1,command = 小点击)#小按钮2
普通按钮1 = Button(yx,bg = "white",bd = 1,command = 普通点击)#普通按钮1
普通按钮2 = Button(yx,bg = "white",bd = 1,command = 普通点击)#普通按钮2
普通按钮3 = Button(yx,bg = "white",bd = 1,command = 普通点击)#普通按钮3
警告按钮 = Button(yx,bg = "red",bd = 1,command = 警告点击)#警告按钮
奖励按钮 = Button(yx,bg = "gold",bd = 1,command = 奖励)#奖励按钮
主菜单 = Menu(yx)
菜单栏 = Menu(yx,tearoff = False)
菜单栏.add_command(label = " 帮助 ",command = 帮助)
菜单栏.add_separator()
菜单栏.add_command(label = " 退出 ",command = yx.destroy)
主菜单.add_cascade(label = "菜单 ",menu = 菜单栏)
yx.config(menu = 主菜单)#菜单设置
游戏框架.create_rectangle(10,10,110,110)
游戏框架.place(x = 0,y = 30)#游戏框架
开始()#开始计时
标签.place(x = 5,y = 0)
得分区.place(x = 52,y = 2,width = 50,height = 22)
计时标签.place(x = 110,y = 0)
计时区.place(x = 160,y = 1,width = 50,height = 24)
刷新按钮()#设置初始按钮
yx.mainloop()
##游戏界面
def 设置():
global 时间
sz = Toplevel()
sz.title("设置")
sz.geometry("180x60")
def 恢复默认():
时间栏.delete(0,END)
时间栏.insert(END,60)
#恢复默认时间(60)
def 确认x():
global 时间
时间获取 = 时间栏.get()
时间 = int(时间获取) + 1
sz.destroy()#设置时间完毕后自动退出
时间标签 = Label(sz,text = "时间设置",font = ("微软雅黑",10))
时间标签.place(x = 5,y = 0)
恢复style = ttk.Style()
恢复style.configure("恢复.TButton",font = ("微软雅黑",9))
恢复 = ttk.Button(sz,text = "恢复默认",command = 恢复默认,style = "恢复.TButton")
恢复.place(x = 80,y = 2,width = 60,height = 25)
确认style = ttk.Style()
确认style.configure("确认.TButton",font = ("微软雅黑",9))
确认 = ttk.Button(sz,text = "确认",command = 确认x,style = "确认.TButton")
确认.place(x = 80,y = 28,width = 60,height = 25)
时间栏 = ttk.Spinbox(sz,from_ = 1,to = 1000000000)
时间栏.place(x = 10,y = 30,width = 50,height = 20)
时间栏.insert(END,时间 - 1)
##设置界面
开始菜单 = Menu(hp)
开始菜单.add_command(label = "设置",command = 设置)
hp.config(menu = 开始菜单)#开始菜单
开始style = ttk.Style()
开始style.configure("开始.TButton",font = ("微软雅黑",11))
开始 = ttk.Button(hp,text = "点击开始游戏",command = 开始,style = "开始.TButton")
开始.place(x = 72,y = 40,width = 100,height = 30)#开始游戏按钮
hp.mainloop()
##开始界面