两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

基于我們前面學(xué)習(xí)的內(nèi)容,我們已經(jīng)可以進行一些小程序的開發(fā),本節(jié)我們就來通過兩個練習(xí)來進一步掌握相關(guān)知識。

1. 猜數(shù)字

使用Tkinter開發(fā)一個猜數(shù)字游戲,運行效果如圖所示。游戲中電腦隨機生成1024以內(nèi)數(shù)字,使用者去猜,如果猜得數(shù)字過大過小都會進行提示并把范圍縮小,程序要統(tǒng)計玩家猜的次數(shù),最后提示猜測次數(shù)。

tkinter22

點擊猜之后會呈現(xiàn)下圖界面:

tkinter23

程序代碼如下:

from tkinter import *
import random
number = random.randint(0,1024)
running = True
num = 0
minn = 0
maxx = 1024

def 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 guess1<number:
            if guess1>minn:
                minn = guess1
                num+=1
                labelqval('猜小了哦!,請輸入'+str(minn)+'到'+str(maxx)+'之間的任意整數(shù)')
        else :
            if guess1<maxx:
                maxx = guess1
                num+=1
                labelqval('猜大了哦!,請輸入'+str(minn)+'到'+str(maxx)+'之間的任意整數(shù)')

    else:
        labelqval('你已經(jīng)答對了!')

def numGuess():
    if num == 1:
        labelqval('一次就答對了!')
    elif num<10:
        labelqval('十次之內(nèi)就答對了?。?!嘗試次數(shù):'+str(num))
    else :
        labelqval('猜數(shù)字,你已經(jīng)猜了超過十次了。。。嘗試次數(shù):'+str(num))

def labelqval(vtext):
    label_a.config(label_a,text=vtext)

root=Tk(className='猜數(shù)字游戲')
root.geometry('400x90+200+200')
label_a=Label(root,width='80')
label_a.pack(side='top')

events = Entry(root,width='40')
btnGuess = Button(root,text='猜')
events.pack(side='left')
events.bind('<Return>',Guess)
btnGuess.bind('<Button-1>',Guess)
btnGuess.pack(side='left')
btnClose = Button(root,text='關(guān)閉')
btnClose.bind('<Button-1>',Close)
btnClose.pack(side = 'left')
labelqval('請輸入0到1024之間的任意整數(shù):')
events.focus_set()
print(number)
root.mainloop()

這個代碼為不加注釋的代碼,使用的內(nèi)容我們前面基本都學(xué)習(xí)過,大家可以通過前面學(xué)習(xí)的知識去嘗試著解決這個問題,最后參考上面的代碼,去自己理解一下這個程序的實現(xiàn)細(xì)節(jié)。

2. 發(fā)牌游戲

游戲——撲克牌發(fā)牌程序窗體圖形版:

4名選手打牌,電腦隨機將52張牌(不含大小王)發(fā)給4名選手,在屏幕上顯示每位牌手的牌,程序的運行效果如圖所示。

撲克牌圖片在鏈接中提取。

鏈接:https://pan.baidu.com/s/1UmTpj4iSksZxF-K0GLaT_A  提取碼:gm2x 

下面我們會使用到我們上一節(jié)講到的canvas模塊,還有一個新的方法。

image=canvas.create_image(50,50,image="picture.gif")

tkinter24

代碼如下:

import random
from tkinter import *
n = 52
def gen_pocker(n):
    x = 100
    while(x>0):
        x = x-1
        p1 = random.randint(0,n-1)
        p2 = random.randint(0,n-1)
        t = pocker[p1]
        pocker[p1] = pocker[p2]
        pocker[p2] = t
    return pocker
pocker = [i for i 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)#創(chuàng)建一個畫布,在畫布中來顯示這些牌
imgs = []
for i in range(1,5):#注意下面的內(nèi)容,我們把每個數(shù)字的撲克牌對應(yīng)為每張圖片
    for j 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 x 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 x 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()

這個題目的實現(xiàn)原理我們在前面的例題中已經(jīng)分析過,在這里我們只要注意我們使用了圖形界面去把每張牌的數(shù)字去對應(yīng)每一個圖片,然后我們在通過canvas控件的定位功能把所有的牌在畫布中顯示出來,使用的過程中一定要注意圖片的路徑問題。

3. 總結(jié)

關(guān)于Tkinter的學(xué)習(xí)我們就到這里,通過這些功能我們可以進行簡單的登錄界面,去設(shè)計UI界面,使用相關(guān)控件去開發(fā)程序,下面我們來學(xué)習(xí)另外一個GUI模塊——wxPython。


點贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)