快速点击游戏(Quick Click)

 本文用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()

##开始界面


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值