美文网首页Python 专题
Python实例-猜数游戏

Python实例-猜数游戏

作者: 小鱼儿_yzh | 来源:发表于2022-07-14 21:17 被阅读0次

    分析:

    玩家输入一个数字,与系统产生的随机数时行比对,根据比对输入结果,如果想等显示“恭喜你猜对了!”,如果玩家数字比系统数字大则显示“你猜大了,再试一次吧!”,如果玩家数字比系统数字小,则显示“你猜小了,再试一次吧!”

    I:玩家输入数字,用Entry控件来完成
    P:用Message控件来显示比对结果。“恭喜你猜对了!”“你猜大了,再试一次吧!”“你猜小了,再试一次吧!”
    O:设置一个Button用来绑定函数judge(),用来进行玩家输入数字与系统产生的随机数的对比,用while循环实现猜到为止的游戏玩法。

    变量和方法:
    guess 玩家输入的数字
    answer 随机产生的数字
    ms Message绑定的变量,用于显示结果
    e Entry绑定的变量
    label_1 显示标题“猜数字游戏”,Label 控件
    label_2 用于提示玩家输入数字的规则,Label 控件
    entry 用于让玩家输入数字,Entry 控件
    button 用于玩家输入数字后点击运行judge()函数,Button 控件
    message 用于显示比对结果,Message 控件

    算法:

    1. 导入 tkinter random 库
    2. 变量声明
    3. 自定义函数 clear, 用于清空 Entry 和 Message
    4. 自定义函数 judge, 用于进行猜数字的比对
    5. label_1, 显示游戏标题
    6. label_2,显示提示玩家规则
    7. entry, 用于玩家输入数字
    8. button ,用于执行游戏进行判断
    9. message ,用于显示结果

    代码:

    from tkinter import *
    import random
    
    root = Tk()
    root.geometry("300x200")
    root.title('猜数字游戏')
    
    #变量声明
    guess= IntVar()
    answer = IntVar()
    ms = StringVar()
    e = IntVar()
    
    #随机产生一个答案
    answer = random.randint(0,100)
    
    #请空数字和结果
    def clear(event):
        entry.delete(0,'end')
        ms.set('')
        
    # 判断猜数结果
    def judge():     
        guess = int(e.get())   
        if 0<=guess<=100:
            if guess == answer:
                ms.set('恭喜你猜对了!')           
            elif guess > answer:
                ms.set('你猜大了,再试一次吧!')            
            else:
                ms.set('你猜小了,再试一次吧!')          
        else:
            ms.set('请输入0-100之间的整数')
            
    #窗体控件
    label_1 = Label(root,text='猜数字游戏',font=("隶书",20))
    label_1.pack(pady=5)
    
    label_2 =Label(root,text='请输入0-100之间的整数')
    label_2.pack(pady=5)
    
    entry = Entry(root,textvariable=e)
    entry.delete(0)
    entry.pack(pady=5)
    entry.bind('<Button-1>',clear)
    
    button=Button(root,text='猜一猜',command=judge)
    button.pack(pady=5)
    
    message = Message(root,textvariable=ms,width=200)
    message.pack(pady=5)
    
    mainloop()
    

    效果图:





    相关文章

      网友评论

        本文标题:Python实例-猜数游戏

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