Python GUI编程:Tkinter模块练习开发一个猜数字和发牌游戏

2023年 7月 12日 51.1k 0

基于我们前面学习的内容,我们已经可以进行一些小程序的开发,本节我们就来通过两个练习来进一步掌握相关知识。

    1. 猜数字

使用Tkinter开发一个猜数字游戏,运行效果如图所示。游戏中电脑随机生成1024以内数字,使用者去猜,如果猜得数字过大过小都会进行提示并把范围缩小,程序要统计玩家猜的次数,最后提示猜测次数。

Python GUI编程:Tkinter模块练习开发一个猜数字和发牌游戏

点击猜之后会呈现下图界面:

Python GUI编程:Tkinter模块练习开发一个猜数字和发牌游戏

程序代码如下:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 from tkinter import *import randomnumber = random.randint(0,1024)running = Truenum = 0minn = 0maxx = 1024def Close(event):    root.destroy()def Guess(event):    global running    global num    global minn    global maxx    if running:        guess1 = int(events.get())        if guess1 == number:            labelqval('恭喜答对了')            num+=1            running = False            numGuess()        elif guess1minn:                minn = guess1                num+=1                labelqval('猜小了哦!,请输入'+str(minn)+'到'+str(maxx)+'之间的任意整数')        else :            if guess10):        = x-1        p1 = random.randint(0,n-1)        p2 = random.randint(0,n-1)        = pocker[p1]        pocker[p1] = pocker[p2]        pocker[p2] = t    return pockerpocker = [i for in range(n)]pocker = gen_pocker(n)print(pocker)(player1,player2,player3,player4) = ([],[],[],[])(p1,p2,p3,p4) = ([],[],[],[])root = Tk()cv = Canvas(root,bg = 'white',width = 700,height = 600)#创建一个画布,在画布中来显示这些牌imgs = []for in range(1,5):#注意下面的内容,我们把每个数字的扑克牌对应为每张图片    for in range(1,14):        imgs.insert((i-1)*13+(j-1),PhotoImage(file = r'C:/Users/轻烟/PycharmProjects/untitled1/teach/puke-images/' + str(i) + "-" + str(j) + ".gif"))for in range(13):    m=x*4    p1.append(pocker[m])    p2.append(pocker[m + 1])    p3.append(pocker[m + 2])    p4.append(pocker[m + 3])p1.sort()p2.sort()p3.sort()p4.sort()for in range(0,13):#注意下面是画布的功能使用,对象为图片对象,前面为它的具体位置,我们可以通过更改位置信息来显示牌的具体定位    img = imgs[p1[x]]    player1.append(cv.create_image((200+20*x,80),image = img))    img = imgs[p2[x]]    player2.append(cv.create_image((100,150+20*x),image = img))    img = imgs[p3[x]]    player3.append(cv.create_image((200+20*x,500),image = img))    img = imgs[p4[x]]    player4.append(cv.create_image((560,150+20*x),image = img))print("player1:",player1)print("player2:",player2)print("player3:",player3)print("player4:",player4)cv.pack()root.mainloop()

这个题目的实现原理我们在前面的例题中已经分析过,在这里我们只要注意我们使用了图形界面去把每张牌的数字去对应每一个图片,然后我们在通过canvas控件的定位功能把所有的牌在画布中显示出来,使用的过程中一定要注意图片的路径问题。

    3. 总结

关于Tkinter的学习我们就到这里,通过这些功能我们可以进行简单的登录界面,去设计UI界面,使用相关控件去开发程序,下面我们来学习另外一个GUI模块——wxPython。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论