黄金点游戏程序开发(二)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. 展示结果