tkinter(GUI界面设计)+python实现简单猜数字游戏_王同学在这的博客-程序员宝宝

技术标签: tkinter  python  


前言

游戏叫做猜数字,每输入一个数字,系统会给你反馈这数字是太小还是太大,然后根据反馈再次输入数字,直到回答正确为止。其中涉及到几个关键点:目标数字不能是固定的,必须每次游戏开始随机生成一个数字。我们可以用random()来实现,这个函数就是随机生成一个数。我们的游戏需要生成1到100之间,而且是整数。

基本开发环境

pycharm
Python 3.8
主要相关模块tkinter(Python内置库,直接导入即可)

实现需求

1、程序随机生成一个100以内(含100)的正整数。
2、将用户输入的答案与随机生成的整数进行比较,给出提示“猜大了”、“猜小了”或者“猜对了”。
3、用户可重复输入,直到猜对为止。
4、猜数功能实现后对代码进行封装tkinter(GUI界面美化设置)。

运行结果

在这里插入图片描述
在这里插入图片描述

以下是全部代码

# @Author : 王同学
import random
import tkinter as tk




def action():
        # 用户输入
        user = int(var.get())
        # 随机生成
        windoms = random.randint(1, 101)

        if user == windoms:
            print('恭喜你猜对数字了','本次数字是',windoms)
            text.insert(tk.INSERT,f'猜数结果========》:恭喜你猜对数字了{windoms}' + '\n')
            text.yview_moveto(1)
            text.update()
        elif user > windoms:
            print('你猜的数字大了,往小点猜。')
            text.insert(tk.INSERT,'猜数结果========》:你猜的数字大了,往小点猜。'+ '\n')
            text.yview_moveto(1)
            text.update()
        elif user < windoms:
            print('你猜的数字小了了,往大点猜。')
            text.insert(tk.INSERT,'猜数结果========》:你猜的数字小了,往大点猜。'+ '\n')
            text.yview_moveto(1)
            text.update()


# 清空文本
def exit_games():
    text.delete(1.0,tk.END)




if __name__ == '__main__':
    root = tk.Tk()
    # 窗口设置标题
    root.title('猜数字小游戏')
    # 窗口大小
    root.geometry('600x600+700+200')
    # 输入框
    var = tk.StringVar()
    entry = tk.Entry(root,textvariable=var,font=('微软雅黑',20),bg='light cyan')
    entry.place(x=260,y=200,height=70,width=330)
    # lable
    tk.Label(root,text='猜数字游戏',font=('微软雅黑',30)).place(x=200,y=0)
    # lable
    labee = tk.Label(root,text='请输入你要猜的数字:',font=('微软雅黑',20))
    labee.place(x=0,y=210)
    # 文本框
    text = tk.Text(root,width=85,fg='DeepPink',bg='light cyan')
    text.place(x=0,y=280)
    # Button
    tk.Button(root,text='开始猜数字',height=4,width=20,bg='pink',command=action).place(x=240,y=100)
    # 退出
    tk.Button(root,text='退出程序',height=4,width=20,bg='pink',command=root.quit).place(x=50,y=100)
    # 清空文本
    tk.Button(root,text='清空文本',height=4,width=20,bg='pink',command=exit_games).place(x=420,y=100)

    # 窗口生成
    root.mainloop()
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/flyskymood/article/details/123412139

智能推荐

DCGAN实现手写数字识别demo_我是小蚂蚁的博客-程序员宝宝

论文解读和原理介绍,在网上已经有大量文章,这里就不在赘述。论文地址:Unsupervised Representations Learning With Deep Convolutional Generative Adversarial Networks论文解读:深度卷积对抗生成网络(DCGAN)(个人感觉最好的一篇)各种框架的代码:【theano】 https://github.com/...

数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)_程人之美的博客-程序员宝宝

BST树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              BST树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小

NYOJ-458:小光棍数_Silent-Jy的博客-程序员宝宝

描述 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少?输入有多组测试数据。第一行一个整数n,表示有n组测试数据。接下来的每行有一个整数m。输出输出第m个小光棍数。样例输入11样例输出471

之七-呕血制作-Lettuce IOT框架-移远BC35G+树莓派+华为OC+SpringBoot后台+微信小程序_PULando的博客-程序员宝宝

上一篇主要讲的是Lettuce IOT框架中的lettuce-Sea设备端的运行工作原理已经相关核心部分而这一篇将要讲部署lettuce-Sea到树莓派并与华为OC平台进行联调。使用华为OceanConnect平台与设备端联调经过上一节课,想必大家都已经初步了解了lettuce-Sea端侧的代码,以及实现原理。而这节课我们来动手实践一下。首先我要讲一下使用window电脑也可以对lett...

python统计目录下文件的大小分布_weixin_34362991的博客-程序员宝宝

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

HTTP请求报文和HTTP响应报文_cynwang的博客-程序员宝宝

一、什么是报文报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。HTTP报文是由一行一行简单的字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了。二、报文的流动报文会流入源端服务器,工作

随便推点

AndroidStudio端口占用检测_dieni1979的博客-程序员宝宝

AndroidStudio 3.1.41.创建一份新的项目工程,项目名为PortOccupy,界面布局文件名为:activity_port_occupy.xml2.需要用到2个TextView和1个Button,界面如下3.Button的鼠标点击事件函数名为:play4.用于显示结果的TextView的ID为liebiao5.双击进入工程代码撰写界...

NW.js 打包并发布桌面应用 ---备忘心得_狼性生物的博客-程序员宝宝_nw打包

开始之前我们需要一些准备:备注:我的是window10 64位1、node.js 不会的请自行百度或看看这个:https://www.runoob.com/nodejs/nodejs-install-setup.html2、npm等 【个人使用cnpm 淘宝镜像 主要是速度快】一般安装完成node 基本都会已经存在npm了,不会的请自行百度3、NW.js 去官网下载:htt...

upx工具编译使用指导_学习才是永恒的博客-程序员宝宝_upx.out.zip

网络上有现成的upx工具,在github上面:https://github.com/upx/upx/releases 根据自己的操作系统和cpu选择相应的工具。下载下来就可以使用。下面是说我在编译时遇到的一些问题:下载的包是upx-3.94.tar.gztar -zxvf upx-3.94.tar.gz 解压到当前文件夹进入解压目录执行命令:make all出现问题1:[email protected]

行业数字化转型攻略:华为云智能应用平台3.0解读_NicolasLearner的博客-程序员宝宝

​刚刚过去的华为生态合作伙伴大会2019,华为云提出:由“三引擎”驱动全行业数字化转型与智能升级。其中“智能应用平台”作为重要引擎之一,致力于提供以应用为中心的端边云全栈服务,让企业应用上云更简单,数字化转型更智能。在大会期间,华为云BU PaaS产品部总经理廖振钦正式发布了“华为云智能应用平台3.0”,并现场展示全球首个容器多云&amp;混合云解决方案。华为云发布“华为云智能应用平台3.0”华为云智能应用平台,构建在云基础设施之上,提供一个Cloud Native应用底座和三个应用创新平台

Axis2: 使用services.xml文件发布WebService(2)_牧海归来的博客-程序员宝宝

第二讲: 使用services.xml文件发布WebService为什么使用services.xml文件?(1)0配置方式发布webservice不方便,只能以class方式发布,在很多应用中不仅仅只有一个webservice类,当webservice类很多的时候,发布大量的class文件很不方便。在实际应用中,一把的方法是将大量的class文件以及其他相关的文件打包成jar文件,

02索引设计规范_马鹏森的博客-程序员宝宝

限制每张表上的索引数量,建议单张表索引不超过5个索引并不是越多越好!索引可以提高效率同样可以降低效率禁止给表中的每一列都建立单独的索引Innodb是按照哪个索引的顺序来组织表的呢?答案是:主键每个Innodb表必须有一个主键不使用更新频繁的列作为主键,不使用多列主键不使用UUID , MD5 , HASH,字符串列作为主键主键建议选择使用自增ID值常见索引列建议SELECT、UPDATE、 DELETE语句的WHERE从句中的列包含在ORDER BY、GROUP BY...

推荐文章

热门文章

相关标签