黄金点游戏程序开发(二)UI界面设计

黄金点游戏程序开发(二)UI界面设计

游戏采用python tkinter开发UI界面

1.设计开始界面

root = tk.Tk()
root.title('黄金点游戏')
root.geometry('1200x700')
root.configure(bg='lightcyan')
tk.Label(root, text='黄金点游戏', font=('Times', 30), bg='lightcyan', fg='darkgoldenrod').pack()
b1 = tk.Button(root,width=20,height=2,text='开始游戏',command = countnum,bg='#D8BFD8',fg='#4682B4').pack()
b2 = tk.Button(root,width=20,height=2,text='结束游戏',command = quit,bg='#D8BFD8',fg='#4682B4')
b2.place(x=1000,y=600)
root.mainloop() 

开始界面展示
在这里插入图片描述

2. 开始游戏后输入人数

tk.Label(root, text='请输入参与人数:', font=('Times', 18), bg='lightcyan', fg='black').pack()
global E1
E1 = tk.Entry(root,bd=5)
E1.pack()
b2 = tk.Button(root,width=10,height=1,text='输入完毕',command=meminput,bg='#D8BFD8',fg='#4682B4')
b2.place(x=720,y=125)

3.每位玩家依次输入数据

先设计一位玩家输入,判断是否所有玩家输入完毕,为输入完毕则进行下一个玩家输入。

3.1 一位玩家输入

def meminput():
    global totalnum
    global E2
    global c
    global mem
    global score
    c = c+1
    totalnum = E1.get()
    w = tk.Label(root, text='玩家'+str(c), font=('Times', 18), bg='lightcyan', fg='black')
    w.place(x=50,y=200)
    if c <= int(totalnum):
        E2 = tk.Entry(root,bd=5)
        E2.place(x=120,y=200)
        B2 = tk.Button(root,width=10,height=1,text='输入完毕',command=writeinfile,bg='#D8BFD8',fg='#4682B4')
        B2.place(x=300,y=200)

3.2 判断是否所有玩家都输入完毕,未输入完毕继续输入

def writeinfile():
    Gnum = 0 
    distance = []
    a = int(totalnum)
    mem[c-1] = E2.get()
    if c < a:
        meminput()

4. 输入完成后计算分数且累计可通过按钮进入下一轮

4.1 计算并显示分数

 else :
        print("完成数据输入")
        for i in range(a):
            Gnum += float(mem[i])
        Gnum = (Gnum*0.618)/a
        print(Gnum)
        for i in range(a):
            dis = abs(float(mem[i])-Gnum)
            distance.append(dis)
        close = distance.index(min(distance))
        far = distance.index(max(distance))   
        posc = close + 1
        posf = far + 1
        w3 = tk.Label(root, text="玩家"+str(posc)+"获得"+str(a)+"分,玩家"+str(posf)+"失去两分,其余同学获得0分", font=('Times', 18), bg='lightcyan', fg='black')
        w3.place(x=50,y=300)
        score[posc-1] += int(a)
        score[posf-1] -= 2
        for i in range(a):
            w4 = tk.Label(root, text="玩家"+str(i+1)+'得分为:'+str(score[i]), font=('Times', 18), bg='lightcyan', fg='black')
            w4.place(x=50,y=340+40*i)

4.2 通过按钮进入下一轮

B4 = tk.Button(root,width=10,height=1,text='进入下一轮',command = nextround,bg='#D8BFD8',fg='#4682B4')
B4.place(x=700,y=300)

def nextround():
    global c
    c = 0
    meminput()

5. 展示结果

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值