关于这篇文章所用到的tkinter组件知识和程序,以及该程序的背景图来源,我已经在文章末尾声明来源。






import random
import tkinter
import tkinter.messagebox
import tkinter.simpledialog
import numpy as npclass Guess_Game(object):def __init__(self):#初始化主窗口self.root=tkinter.Tk()#设置窗口标题self.root.title('猜数字游戏——Keep_Trying_Go')#设置窗口大小self.root.geometry('480x180+400+300')#设置窗口为不允许改变大小self.root.resizable(False,False)try:#创建画布self.canvas=tkinter.Canvas(self.root,height=400,width=700,borderwidth=2)#加载图片文件self.image_file=tkinter.PhotoImage(file='Background.gif')#将图像放置在画布上self.image=self.canvas.create_image(0,0,anchor='nw',image=self.image_file)#放置在画布上端,也就是主窗口的“前方”self.canvas.pack(side='top')except:print('加载不出图片')#用户猜的次数self.varNumber=tkinter.StringVar(self.root,value='0')#允许用户猜的次数self.totalTimes=tkinter.IntVar(self.root,value=0)#用户已经猜的次数self.already=tkinter.IntVar(self.root,value=0)#记录当前生成的随机数self.currentNumber=tkinter.IntVar(self.root,value=0)#记录玩家玩游戏的总次数self.times=tkinter.IntVar(self.root,value=0)#记录玩家猜对的总次数self.right=tkinter.IntVar(self.root,value=0)self.lb=tkinter.Label(self.root,text='请输入一个整数: ')self.lb.place(x=70,y=50,width=100,height=30)#用户猜的次数并输入文本框self.entryNumber=tkinter.Entry(self.root,textvariable=self.varNumber)self.entryNumber.place(x=170,y=50,width=150,height=30)#游戏开始之后才允许输入数字self.entryNumber['state']='disabled'self.button=tkinter.Button(self.root,text='Start Game',command=self.buttonClick)self.button.place(x=150,y=100,width=80,height=30)#按钮单击事件处理函数def closeWindows(self):self.message='共玩游戏 {0}次,猜对 {1}次!\n欢迎下次再玩!'self.message=self.message.format(self.times.get(),self.right.get())tkinter.messagebox.showinfo('战绩',self.message)def buttonClick(self):if self.button['text']=='Start Game':#每次游戏时允许用户自定义数值的范围#玩家必须输入正确的数字while True:try:#simpledialog模块参数:title指定对话框的标题;prompt 显示的文字;initialvalue 指定输入框的初始值;self.start=tkinter.simpledialog.askinteger('允许的最小整数','最小数',initialvalue=1)breakexcept:passwhile True:try:self.end=tkinter.simpledialog.askinteger('允许的最大整数','最大数',initialvalue=10)breakexcept:pass#在用户自定义的数值范围内生成随机数self.currentNumber.set(random.randint(self.start,self.end))#用户自定义一共允许猜的次数#玩家必须输入正确的数字while True:try:self.t=tkinter.simpledialog.askinteger('最多允许猜几次?','总次数',initialvalue=3)self.totalTimes.set(self.t)breakexcept:pass#已猜的次数初始化为0self.already.set(0)self.button['text']='剩余次数: '+str(self.t)#将文本框初始化为0self.varNumber.set('0')#允许用户开始输入数字self.entryNumber['state']='normal'#玩游戏的次数加一self.times.set(self.times.get()+1)else:#一共允许用户猜的次数self.total=self.totalTimes.get()#本次游戏的正确答案self.current=self.currentNumber.get()try:self.x=int(self.varNumber.get())except:tkinter.messagebox.showerror('抱歉','必须输入整数')returnif self.x==self.current:tkinter.messagebox.showinfo('恭喜','猜对了')self.button['text']='Start Game'#禁用文本框self.entryNumber['state']='disabled'self.right.set(self.right.get()+1)else:#已猜次数加一self.already.set(self.already.get()+1)if self.x>self.current:tkinter.messagebox.showerror('抱歉','猜的次数太大了')else:tkinter.messagebox.showerror('抱歉', '猜的次数太小了')#可猜的的次数已经用完if self.already.get()==self.total:tkinter.messagebox.showerror('抱歉','游戏结束了,正确的数是: '+str(self.currentNumber.get()))self.button['text']='Start Game'#禁用文本框self.entryNumber['state']='disabled'else:self.button['text']='剩余次数: '+str(self.total-self.already.get())def main():g=Guess_Game()# g.root.protocol('WM_DELETE_WINDOW', g.closeWindow())tkinter.mainloop()g.closeWindows()
if __name__ == '__main__':main()

关于tkinter的组件学习可以参考这位博主:
https://blog.csdn.net/mingshao104/article/details/79591965
以上程序的背景图来自这位博主:
https://blog.csdn.net/pymonster/article/details/113393829
程序来自《python程序设计基础》

使用tkinter实现猜数字游戏相关推荐

  1. python3.3使用tkinter实现猜数字游戏代码

    发布时间:2014-06-18   编辑:www.jbxue.com 原文地址:http://www.jbxue.com/article/python/22152.html python3.3使用tk ...

  2. 使用tkinter 实现一个猜数字游戏

    使用tkinter 实现一个猜数字游戏 实现效果如下 先导入我们要实现的模块名 import time import tkinter as tk import tkinter.font as tkFo ...

  3. python猜数字游戏(无聊至极)

    python猜数字游戏 环境python3 库random,tkinter 源码: #随机生成a,数值在1-6之间 a=random.randint(1,6) b = input("请输入色 ...

  4. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)

    题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...

  5. 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)

    实现一个经典"猜数字"游戏.给定答案序列和用户猜的序列,统计有多少数字位置正确 (A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度n ...

  6. c语言猜数字游戏用while,【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)...

    要求:猜数字游戏的实现.代码如下:#include #include #include void menu() { printf("***************************** ...

  7. python猜年龄代码_python入门教程NO.7用python来写一个猜数字游戏

    python入门教程 本文涉及的python基础语法为while循环 #python#3中while语句常常被用于循环执行某个程序,任何非0和非空null的值,都会被条件判断为True while 条 ...

  8. Go-实现猜数字游戏代码

    实现猜数字游戏代码 1 package main 2 3 import ( 4 "fmt" 5 "math/rand" 6 "time" 7 ...

  9. python猜数字游戏简单-python猜数字游戏快速求解解决方案

    python猜数字游戏快速求解解决方案.使用方法: 1. 保存代码为guessall.py 2. 执行python guessall.py > result.txt 3. 打开result.tx ...

最新文章

  1. WEB应用常见15种安全漏洞一览
  2. java多态性补充-instanceof关键字
  3. delphi中exit,abort,break,continue,halt,runerro 的区别
  4. (转)ASP.NET-关于Container dataitem 与 eval方法介绍
  5. 深入理解条件过滤Conditional
  6. CentOS安装glibc-2.14
  7. Typora本地图片上传
  8. bzoj 1057: 棋盘制作(悬线法)
  9. Objective-C基础笔记(7)Foundation中的常用结构体
  10. jsp(web作业)
  11. html图片透明度变化,css,_CSS3动画实现图片透明度变化在微信上无效的解决方案,css - phpStudy...
  12. 竞拍系统c语言,C++版扫拍卖源代码,非程序,这下不会删帖吧?
  13. 新中大怎么修改服务器,新中大软件服务器地址修改
  14. 道通诉大疆337调查之专利分析
  15. 支付宝(蚂蚁金服开放平台)-支付结果异步通知-验签
  16. linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
  17. 树莓4b驱动开发:Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
  18. 解题笔记(39)——过河问题
  19. Android创建前台运行的Service
  20. 236_自定义抽签器二

热门文章

  1. vue实现浏览器代码在线编辑预览
  2. taro: 如何使用编译配置中定义的常量defineConstants
  3. wro4j:Java Web资源压缩
  4. 专业LaTeX编辑工具:Texpad for Mac
  5. 用计算机弹醒不来的梦,抖音梦里梦到醒不来的梦是什么歌
  6. ACM数论----中国剩余定理与拓展中国剩余定理
  7. 传奇网关-微信绑定和充值
  8. 使用控制符控制输出格式
  9. POJ - 1190 - 生日蛋糕 (深搜剪枝)
  10. chinaren校友录xss漏洞