使用Python Tkinter實現剪刀石頭布小游戲功能
編寫剪刀石頭布游戲
讓我們使用Python 3和Tkinter開發相同的游戲。我們可以將游戲命名為Rock-Paper-Scissors-Lizard-Spock。
規則和玩法
ock crushes Scissors Rock crushes Lizard Paper covers Rock Paper disproves Spock Scissors cuts Paper Scissors decapitates Lizard Lizard poisons Spock Lizard eats paper Spock smashes Scissors Spock vaporizes Rock Two same objects is a draw程序演練
當用戶運行程序時,他們必須單擊五個可用對象之一:
Rock Paper Scissors Lizard Spock當用戶選擇一個對象時,我們的程序將隨機選擇一個對象。然后,它將通過一組規則來聲明用戶是贏,輸還是畫游戲。結果將顯示在應用程序的第二行。
當用戶按下任何按鈕時,游戲將重新開始。如果用戶想要關閉游戲,則可以按關閉按鈕。在游戲開始時,我們具有用于特定對象的手形符號。現在,當用戶選擇一個對象時,它將轉換為圖形圖像。我們的程序還選擇了一個對象,它將顯示所選對象的圖形圖像。
用Python實現(10個步驟)
現在我們已經有了剪刀石頭布游戲的意義,讓我們逐步介紹Python的過程。
1.導入所需的庫
#Import the required libraries :from tkinter import *import randomimport simpleaudio as sa tkinter:在我們的應用程序中添加小部件 random:生成一個隨機數 simpleaudio:播放聲音文件
2.創建tkinter主窗口
root = Tk()root.configure(bg='#000000')root.geometry(’+0+0’)root.iconbitmap('Game.ico')root.title('Rock-Paper-Scissor-Lizard-Spock')root.resizable(width=False,height=False) root = Tk( ):用于初始化我們的tkinter模塊。 root.configure( ):我們使用它來指定應用程序的背景色。在我們的情況下,背景顏色為黑色。 root.geometry( ):我們使用它來指定我們的應用程序窗口將在哪個位置打開。它將在左上角打開。 root.iconbitmap( ):我們使用它來設置應用程序窗口標題欄中的圖標。此功能僅接受.ico文件。 root.title( ):我們使用它來設置應用程序的標題。 root.resizable( ):在這里我們使用它來防止用戶調整主窗口的大小。
3.導入聲音文件
#To play sound files : start = sa.WaveObject.from_wave_file('Start.wav')Win = sa.WaveObject.from_wave_file('Win.wav')Lose = sa.WaveObject.from_wave_file('Lose.wav')Draw = sa.WaveObject.from_wave_file('Draw.wav') start.play()
現在,我們將使用一些將在各種事件中播放的聲音文件。當我們的程序啟動時,它將播放開始文件。當用戶贏得游戲,輸掉游戲或繪制游戲時,我們將播放其他三個文件。
需要注意的一件事是它僅接受.wav文件。首先,我們需要將聲音文件加載到對象中。然后我們可以.play( )在需要時使用方法播放它。
4.為我們的應用程序加載圖像
我們將在應用程序中使用各種圖像。要首先使用這些圖像,我們需要加載這些圖像。在這里,我們將使用PhotoImage類加載圖像。
#Hand images :rockHandPhoto = PhotoImage(file='Rock_1.png')paperHandPhoto = PhotoImage(file='Paper_1.png')scissorHandPhoto = PhotoImage(file='Scissor_1.png')lizardHandPhoto = PhotoImage(file='Lizard_1.png')spockHandPhoto = PhotoImage(file='Spock_1.png') #Graphical images :rockPhoto = PhotoImage(file='Rock_P.png')paperPhoto = PhotoImage(file='Paper_P.png')scissorPhoto = PhotoImage(file='Scissor_P.png')lizardPhoto = PhotoImage(file='Lizard_P.png')spockPhoto = PhotoImage(file='Spock_P.png') #Decision image :decisionPhoto = PhotoImage(file='Decision_Final.png') #Result images :winPhoto = PhotoImage(file='G_WIN.png')losePhoto = PhotoImage(file='G_LOST.png')tiePhoto = PhotoImage(file='G_DRAW.png')
首先,我們為物體準備了手部圖像。游戲開始時將向用戶顯示所有五個圖像。用戶必須從那些圖像中選擇一個對象。
用戶單擊圖像后,我們的程序將向我們顯示該對象的圖形圖像。必須選擇一個對象,我們的程序也將選擇一個對象。我們的程序將僅顯示這兩個圖形圖像,然后其余圖像將消失。
現在,我們顯示一個簡單的決策圖像,當結果可用時,它將更改其圖像。我們的結果有不同的圖像。
如果用戶獲勝 如果用戶輸了 如果有平局5.添加Tkinter小部件
#Initialize the button variables :rockHandButton = ' 'paperHandButton = ' 'scissorHandButton = ' 'lizardHandButton= ' 'spockHandButton = ' ' #Create the result button :resultButton = Button(root,image=decisionPhoto) #Set the variable to Trueclick = True 初始化五個按鈕的變量。 在這里,我們創建了結果按鈕,它將向我們顯示最終結果。 我們將click變量設置為True,以便我們的程序繼續運行直到將其設置為False。在接下來的幾點中,我們將看到更多有關此的內容。
6. Play( )功能
def play(): global rockHandButton,paperHandButton,scissorHandButton,lizardHandButton,spockHandButton #Set images and commands for buttons : rockHandButton = Button(root,image = rockHandPhoto, command=lambda:youPick('Rock')) paperHandButton = Button(root,image = paperHandPhoto, command=lambda:youPick('Paper')) scissorHandButton = Button(root,image = scissorHandPhoto, command=lambda:youPick('Scissor')) lizardHandButton = Button(root,image= lizardHandPhoto,command=lambda:youPick('Lizard')) spockHandButton = Button(root,image= spockHandPhoto,command=lambda:youPick('Spock')) #Place the buttons on window : rockHandButton.grid(row=0,column=0) paperHandButton.grid(row=0,column=1) scissorHandButton.grid(row=0,column=2) lizardHandButton.grid(row=0,column=3) spockHandButton.grid(row=0,column=4) #Add space : root.grid_rowconfigure(1, minsize=50) #Place result button on window : resultButton.grid(row=2,column=0,columnspan=5)
在這里,我們為對象創建按鈕。我們將為按鈕設置圖像,當按下按鈕時,它將youPick( )與單擊的對象的字符串名稱一起起作用。
然后,使用該.grid( )方法將按鈕排列在主窗口上。在這里,我們在的第一行添加一個空格.grid_rowconfigure( )。然后,將結果按鈕放在第二行。我們正在使用columnspan結果按鈕居中。
7.輪到計算機了
我們的計算機將隨機選擇五個可用對象之一,并為此返回一個字符串值。
def computerPick(): choice = random.choice(['Rock','Paper','Scissor','Lizard','Spock']) return choice
8.主要功能: youPick( )
在此功能中,我們的程序將顯示所選對象的圖形圖像。它將刪除其余的對象。它還將應用一組規則來生成結果。
def youPick(yourChoice): global click compPick = computerPick() if click==True:
我們將計算機的選擇存儲在compPick變量中。我們將使用它來確定結果。
用戶選擇Rock:
如果用戶選擇Rock,則使用此代碼塊。play( )函數中的命令沿字符串發送,該字符串代表用戶選擇的對象。我們將其存儲在yourChoice變量中。現在,計算機有五種可能性。
現在我們必須為每個規則制定規則。現在注意,當用戶和計算機選擇一個對象時,不允許他們對其進行更改。因此,我們將click變量更改為False。
現在,由于用戶已選擇,Rock我們希望我們的第一張圖像變成巖石的圖形圖像。現在,如果計算機選擇Rock,那么我們希望我們的第二張圖像變成圖形圖像。要更改按鈕的圖像,我們使用.configure( )方法。
我們希望其余三個圖像消失。為了使它們消失,我們使用.grid_forget( )。它還將播放繪圖音頻。現在,我們為其余對象開發類似的規則。
def computerPick():choice = random.choice(['Rock','Paper','Scissor','Lizard','Spock'])return choice
用戶選擇紙張:
請參閱上面的規則,以了解用戶選擇“紙張”時的規則。查看下面的代碼,該代碼遵循與Rock相同的規則。
elif yourChoice == 'Paper':rockHandButton.configure(image=paperPhoto)if compPick == 'Rock':paperHandButton.configure(image=rockPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelif compPick == 'Paper':paperHandButton.configure(image=paperPhoto)resultButton.configure(image=tiePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Draw.play()click = Falseelif compPick == 'Scissor':paperHandButton.configure(image=scissorPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelif compPick =='Lizard':paperHandButton.configure(image=lizardPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelse :paperHandButton.configure(image=spockPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = False
用戶選擇剪刀:
請從上方查看規則,以了解用戶選擇剪刀時的規則。查看下面的代碼,該代碼遵循與Rock and Paper相同的規則。
elif yourChoice=='Scissor':rockHandButton.configure(image=scissorPhoto)if compPick == 'Rock':paperHandButton.configure(image=rockPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelif compPick == 'Paper':paperHandButton.configure(image=paperPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = Falseelif compPick=='Scissor':paperHandButton.configure(image=scissorPhoto)resultButton.configure(image=tiePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Draw.play()click = Falseelif compPick == 'Lizard':paperHandButton.configure(image=lizardPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = Falseelse:paperHandButton.configure(image=spockPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = False
用戶選擇'Lizard'
請從上方查看規則,以了解用戶選擇蜥蜴的規則。查看下面的代碼,該代碼遵循與其他代碼相同的規則。
elif yourChoice=='Lizard':rockHandButton.configure(image=lizardPhoto)if compPick == 'Rock':paperHandButton.configure(image=rockPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelif compPick == 'Paper':paperHandButton.configure(image=paperPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = Falseelif compPick=='Scissor':paperHandButton.configure(image=scissorPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelif compPick == 'Lizard':paperHandButton.configure(image=lizardPhoto)resultButton.configure(image=tiePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Draw.play()click = Falseelse:paperHandButton.configure(image=spockPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = False
用戶選擇Spock:
請從上方查看規則,以了解用戶選擇Spock的規則。查看下面的代碼,該代碼遵循與其他代碼相同的規則。
elif yourChoice=='Spock':rockHandButton.configure(image=spockPhoto)if compPick == 'Rock':paperHandButton.configure(image=rockPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = Falseelif compPick == 'Paper':paperHandButton.configure(image=paperPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelif compPick=='Scissor':paperHandButton.configure(image=scissorPhoto)resultButton.configure(image=winPhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Win.play()click = Falseelif compPick == 'Lizard':paperHandButton.configure(image=lizardPhoto)resultButton.configure(image=losePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Lose.play()click = Falseelse:paperHandButton.configure(image=spockPhoto)resultButton.configure(image=tiePhoto)scissorHandButton.grid_forget()lizardHandButton.grid_forget()spockHandButton.grid_forget()Draw.play()click = False
9.再玩一次
得到結果后,如果要再次播放,只需單擊任何按鈕。它將轉換為原始的手部圖像。現在,我們必須取回那些消失的圖像。我們將click變量的值設置為True。然后,我們將播放開始聲音文件,以便在用戶進入新游戲時將播放音頻。
else: #To reset the game : if yourChoice=='Rock' or yourChoice=='Paper' or yourChoice=='Scissor' or yourChoice=='Lizard' or yourChoice=='Spock': rockHandButton.configure(image=rockHandPhoto) paperHandButton.configure(image=paperHandPhoto) scissorHandButton.configure(image=scissorHandPhoto) lizardHandButton.configure(image=lizardHandPhoto) spockHandButton.configure(image=spockHandPhoto) resultButton.configure(image=decisionPhoto) #Get back the deleted buttons : scissorHandButton.grid(row=0,column=2) lizardHandButton.grid(row=0,column=3) spockHandButton.grid(row=0,column=4) #Set click = True : click=True #Play the sound file : start.play()
10.調用函數
現在我們調用play函數,它將在內部處理其余函數。要關閉該應用程序,請按標題欄上的關閉按鈕。
#Calling the play function :play() #Enter the main loop :root.mainloop()
放在一起
查看此Python Tkinter游戲的完整代碼。
#Import the required libraries :from tkinter import *import randomimport simpleaudio as sa root = Tk()root.configure(bg='#000000')root.geometry(’+0+0’)root.iconbitmap('Game.ico')root.title('Rock-Paper-Scissor-Lizard-Spock')root.resizable(width=False,height=False) #To play sound files : start = sa.WaveObject.from_wave_file('Start.wav')Win = sa.WaveObject.from_wave_file('Win.wav')Lose = sa.WaveObject.from_wave_file('Lose.wav')Draw = sa.WaveObject.from_wave_file('Draw.wav') start.play() #Hand images :rockHandPhoto = PhotoImage(file='Rock_1.png')paperHandPhoto = PhotoImage(file='Paper_1.png')scissorHandPhoto = PhotoImage(file='Scissor_1.png')lizardHandPhoto = PhotoImage(file='Lizard_1.png')spockHandPhoto = PhotoImage(file='Spock_1.png') #Graphical images :rockPhoto = PhotoImage(file='Rock_P.png')paperPhoto = PhotoImage(file='Paper_P.png')scissorPhoto = PhotoImage(file='Scissor_P.png')lizardPhoto = PhotoImage(file='Lizard_P.png')spockPhoto = PhotoImage(file='Spock_P.png') #Decision image :decisionPhoto = PhotoImage(file='Decision_Final.png') #Result images :winPhoto = PhotoImage(file='G_WIN.png')losePhoto = PhotoImage(file='G_LOST.png')tiePhoto = PhotoImage(file='G_DRAW.png') #Initialize the button variables :rockHandButton = ' 'paperHandButton = ' 'scissorHandButton = ' 'lizardHandButton= ' 'spockHandButton = ' ' #Create the result button :resultButton = Button(root,image=decisionPhoto) #Set the variable to Trueclick = True def play(): global rockHandButton,paperHandButton,scissorHandButton,lizardHandButton,spockHandButton #Set images and commands for buttons : rockHandButton = Button(root,image = rockHandPhoto, command=lambda:youPick('Rock')) paperHandButton = Button(root,image = paperHandPhoto, command=lambda:youPick('Paper')) scissorHandButton = Button(root,image = scissorHandPhoto, command=lambda:youPick('Scissor')) lizardHandButton = Button(root,image= lizardHandPhoto,command=lambda:youPick('Lizard')) spockHandButton = Button(root,image= spockHandPhoto,command=lambda:youPick('Spock')) #Place the buttons on window : rockHandButton.grid(row=0,column=0) paperHandButton.grid(row=0,column=1) scissorHandButton.grid(row=0,column=2) lizardHandButton.grid(row=0,column=3) spockHandButton.grid(row=0,column=4) #Add space : root.grid_rowconfigure(1, minsize=50) #Place result button on window : resultButton.grid(row=2,column=0,columnspan=5) def computerPick(): choice = random.choice(['Rock','Paper','Scissor','Lizard','Spock']) return choice def youPick(yourChoice): global click compPick = computerPick() if click==True: if yourChoice == 'Rock': rockHandButton.configure(image=rockPhoto) if compPick == 'Rock': paperHandButton.configure(image=rockPhoto) resultButton.configure(image=tiePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Draw.play() click = False elif compPick == 'Paper': paperHandButton.configure(image=paperPhoto) scissorHandButton.grid_forget() resultButton.configure(image=losePhoto) lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick == 'Scissor': paperHandButton.configure(image=scissorPhoto) scissorHandButton.grid_forget() resultButton.configure(image=winPhoto) lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif compPick =='Lizard': paperHandButton.configure(image=lizardPhoto) scissorHandButton.grid_forget() resultButton.configure(image=winPhoto) lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False else : paperHandButton.configure(image=spockPhoto) scissorHandButton.grid_forget() resultButton.configure(image=losePhoto) lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif yourChoice == 'Paper': rockHandButton.configure(image=paperPhoto) if compPick == 'Rock': paperHandButton.configure(image=rockPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick == 'Paper': paperHandButton.configure(image=paperPhoto) resultButton.configure(image=tiePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Draw.play() click = False elif compPick == 'Scissor': paperHandButton.configure(image=scissorPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick =='Lizard': paperHandButton.configure(image=lizardPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False else : paperHandButton.configure(image=spockPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif yourChoice=='Scissor': rockHandButton.configure(image=scissorPhoto) if compPick == 'Rock': paperHandButton.configure(image=rockPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick == 'Paper': paperHandButton.configure(image=paperPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif compPick=='Scissor': paperHandButton.configure(image=scissorPhoto) resultButton.configure(image=tiePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Draw.play() click = False elif compPick == 'Lizard': paperHandButton.configure(image=lizardPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False else: paperHandButton.configure(image=spockPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif yourChoice=='Lizard': rockHandButton.configure(image=lizardPhoto) if compPick == 'Rock': paperHandButton.configure(image=rockPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick == 'Paper': paperHandButton.configure(image=paperPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif compPick=='Scissor': paperHandButton.configure(image=scissorPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick == 'Lizard': paperHandButton.configure(image=lizardPhoto) resultButton.configure(image=tiePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Draw.play() click = False else: paperHandButton.configure(image=spockPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif yourChoice=='Spock': rockHandButton.configure(image=spockPhoto) if compPick == 'Rock': paperHandButton.configure(image=rockPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif compPick == 'Paper': paperHandButton.configure(image=paperPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False elif compPick=='Scissor': paperHandButton.configure(image=scissorPhoto) resultButton.configure(image=winPhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Win.play() click = False elif compPick == 'Lizard': paperHandButton.configure(image=lizardPhoto) resultButton.configure(image=losePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Lose.play() click = False else: paperHandButton.configure(image=spockPhoto) resultButton.configure(image=tiePhoto) scissorHandButton.grid_forget() lizardHandButton.grid_forget() spockHandButton.grid_forget() Draw.play() click = False else: #To reset the game : if yourChoice=='Rock' or yourChoice=='Paper' or yourChoice=='Scissor' or yourChoice=='Lizard' or yourChoice=='Spock': rockHandButton.configure(image=rockHandPhoto) paperHandButton.configure(image=paperHandPhoto) scissorHandButton.configure(image=scissorHandPhoto) lizardHandButton.configure(image=lizardHandPhoto) spockHandButton.configure(image=spockHandPhoto) resultButton.configure(image=decisionPhoto) #Get back the deleted buttons : scissorHandButton.grid(row=0,column=2) lizardHandButton.grid(row=0,column=3) spockHandButton.grid(row=0,column=4) #Set click = True : click=True #Play the sound file : start.play() #Calling the play function :play() #Enter the main loop :root.mainloop()
到此這篇關于使用Python Tkinter實現剪刀石頭布小游戲功能的文章就介紹到這了,更多相關Python Tkinter剪刀石頭布小游戲內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
