Python 专题

Python实例-猜拳游戏(tkinter 文字版)

2022-07-05  本文已影响0人  小鱼儿_yzh

分析:

  1. 界面
    从上往下依次是:
  1. 程序运行过程
    用户选中“剪子”、“包袱”、“锤子” 三个铵钮中的一个后,按下 “出拳” 按钮触发事件,运行自定义函数 run() ,run()进行判断得出结果,把系统出拳和玩家出拳以及结果显示出来。

效果图:

代码:

from tkinter import *
import random
root = Tk()
root.geometry('400x400')
root.title('猜拳游戏')

list01 = ['剪子','包袱','锤子']
# 定义变量
u=IntVar()
v=IntVar()
ms = StringVar()
mu = StringVar()
mr = StringVar()

#响应事件,判断

def run(event):
    s = random.randint(1,3)
    u=v.get()
    ms.set('系统出拳:'+list01[s-1])
    mu.set('玩家出拳:'+list01[u-1])    
    if (s==1 and u==2) or (s ==2 and u==3)or(s==3 and u==1):
        mr.set('系统羸!')
    elif (s==u):        
        mr.set('平局!')
    else:        
        mr.set('玩家羸!')
    
   
#Frame布局一下吧
f_title = Frame(root)
f_title.pack(side='top')
f_tip = Frame(root)
f_tip .pack(side = 'top')
f_3button = Frame(root)
f_3button.pack(side = 'top')
f_judge =Frame(root)
f_judge .pack(side = 'top')
f_message =Frame(root)
f_message .pack(side = 'top',ipadx=0.5,fill='x')

# 游戏标题
L_title=Label(f_title,text='猜拳游戏',font=('隶书',40))
L_title.pack(pady=20,side='top')
#提示选择
L_user=Label(f_tip,text='请选择:',font=('楷书',20))
L_user.pack(pady=10,side='top')

#设置三个单选按钮(value=0 时表示选中状态?)
for i in range(1,4):    
    R=Radiobutton(f_3button,text=list01[i-1],variable=v,value=i,width=10,height=2,relief='raised',anchor='center',indicatoron=0)
    R.pack(pady=2,side='left',fill='x')

#出拳按钮,单击触发
judgebutton=Button(f_judge,text='出拳', width=10,height=2)
judgebutton.pack(pady=10,anchor='n',side='top')
judgebutton.bind('<Button-1>',run)
# 显示信息及结果
M_s = Message(root,textvariable=ms,width=100) #显示系统出拳
M_u = Message(root,textvariable=mu,width=100)#显示玩家出拳
M_result=Message(root,textvariable=mr,width=100)#显示结果
M_s.pack()
M_u.pack()
M_result.pack()

mainloop()

bug

在不选择三个选项的时候按“出拳”按钮也会运行游戏,当做选中锺来进行。需要进一步改进程序。

上一篇下一篇

猜你喜欢

热点阅读