美文网首页Python 专题
Python实例-猜拳游戏(tkinter图片版)

Python实例-猜拳游戏(tkinter图片版)

作者: 小鱼儿_yzh | 来源:发表于2022-07-06 22:49 被阅读0次

    分析:

    本程序是上一版的改进升级,本次升级主要还是界面的改进,把用于玩家选择的三个Raidobutton从原来的文字变成图片,然后把结果的出示由原来的上下三行显示,变成左中右三部分来显示,把结果设置一个前景色突出显示。
    依旧没有解决上次的问题,玩家不选择直接出拳也可运行。
    考虑应该是加一状态检查功能,检查玩家是否在上面的三个按钮中做出选择,如果没做选择,不运行程序,而是弹出提示,提示玩家进行选择。
    后面继续学习,如果做出判断以及如何弹出提示框或出示提示信息也行。

    效果图:

    代码:

    from tkinter import *
    import random
    root = Tk()
    root.geometry('400x500')
    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')
    
    # 游戏标题
    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=20,side='top')
    
    #设置三个单选按钮
    img1 = PhotoImage(file='jiandao.png')
    img2 = PhotoImage(file='baofu.png')
    img3 = PhotoImage(file='chui.png')
    r1 = Radiobutton(f_3button,text =list01[0],image=img1,variable=v,value=1,indicatoron=0)
    r1.pack(pady=2,side='left',fill = 'x')
    r2 = Radiobutton(f_3button,text =list01[1],image=img2,variable=v,value=2,indicatoron=0)
    r2.pack(pady=2,padx=20,side='left',fill = 'x')
    r3 = Radiobutton(f_3button,text =list01[2],image=img3,variable=v,value=3,indicatoron=0)
    r3.pack(pady=2,side='left',fill = 'x')
    
    #出拳按钮,单击触发
    judgebutton=Button(f_judge,text='选定出拳', width=10,height=2,font=('楷体',18))
    judgebutton.pack(pady=20,anchor='n',side='top')
    judgebutton.bind('<Button-1>',run)
    
    # 显示信息及结果
    img_win=PhotoImage(file='chui.png')
    M_s = Message(f_message,textvariable=ms,width=100,font=('宋体',16),justify='center') #显示系统出拳
    M_result=Message(f_message,textvariable=mr,width=110,font=('宋体',20),fg='red',justify='center')#显示结果
    M_u = Message(f_message,textvariable=mu,width=100,font=('宋体',16),justify='center')#显示玩家出拳
    M_s.pack(side='left',fill='x')
    M_result.pack(side= 'left',fill='x' ,padx=30)
    M_u.pack(side='left',fill='x')
    
    root.mainloop()
    

    相关文章

      网友评论

        本文标题:Python实例-猜拳游戏(tkinter图片版)

        本文链接:https://www.haomeiwen.com/subject/jropbrtx.html