Python分分钟带你玩转GUI猜数字游戏

    xiaoxiao2023-10-24  171

    代码步骤如下:

    1、导入使用的GUI模块 Tkinter

    2、创建GUI的主要应用程序入口

    3、添加控件并设置相应的属性

    4、编写触发事件响应代码

    创建GUI的主要应用程序入口

     

    接下来就是 设置相应的属性

    我们为窗口添加一个控件

    用于设置提示文本

     

    编写触发事件响应代码

    首先我们当然是需要一个随机数的生成,也需要引入这个标准库

    定义需要引用到的全局变量,以便后面的函数去使用

    接下来我们需要关闭窗口的事件(destory)

    就像我们页面一样,按钮点击就可以把某个不需要显示的控件给关闭掉

    ```

    def btnCloseClick(event):

        root.destory()

    ```

    是不是很简单呢,就两行代码,就可以关闭窗口了,我们拭目以待吧

    除了关闭按钮之外,我们当然还需要一个重置窗口

    就像我们表单登录一样,重置密码

    ```

    def btnResetClick(event):

        global number # 引用外部变量

        global running # 引用外部变量

        global num # 引用外部变量

        global maxnum # 引用外部变量

        global minnum # 引用外部变量

        number = random.randint(100,999) # 重新赋值

        running = True # 重新赋值

        num = 0 # 重新赋值

        labelChange("请输入100到999之间任意整数:")

        entry_num.delete(0,'end')

        labelRange('目前的范围是[%d,%d]'%(minnum,maxnum))

        print(number)

    ```

    我们要猜数字,当然需要一个文本框用来输入数字,然后确定,给出提示

    ```

    def btnGuessClick(event):

        global num

        global running

        global maxnum

        global minnum

        if running:

            answer = int(entry_num.get())

            if answer == number:

                labelChange("恭喜答对了!")

                num+=1

                running = False

                numGuess()

            elif answer < number:

                num+=1

                labelChange("小了哦")

                if answer>minnum:

                    minnum=answer 

            else:

                num+=1

                labelChange("大了哦")

                if answer<maxnum:

                    maxnum=answer

            labelRange('目前的范围是[%d,%d]'%(minnum,maxnum))       

        else:

            labelChange('你已经答对啦.')

    ```

    最终我们才对了游戏的结果,我们还要给出信息提示:

    ```

    def numGuess():

        if num == 1:

            labelChange('好棒!一次答对!')

        elif num < 9:

            labelChange('好厉害,尝试次数:'+str(num))

        elif num < 19:

            labelChange('还行,尝试次数:'+str(num))

        else:

            labelChange('您都试了超过20次了。。。。尝试次数:'+str(num))

    def labelChange(vText): # 定义控件信息修改函数

        label_info.config(label_info,text=vText)

    def labelRange(cText):

        label_range.config(label_range,text=cText)

    ```

    最终所有代码整合起来的结果,由程序运行如下

    最新回复(0)