python視頻教程欄目介紹使用Tkinter實現(xiàn)剪刀石頭布
相關(guān)免費學習推薦:python視頻教程
編寫剪刀石頭布游戲
讓我們使用Python 3和Tkinter開發(fā)相同的游戲。我們可以將游戲命名為Rock-Paper-Scissors-Lizard-Spock。
規(guī)則和玩法
Rock 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學習交流環(huán)境,可以加入我們的python圈,裙號930900780,可領(lǐng)取python學習資料,會節(jié)約很多時間,減少很多遇到的難題。
當用戶選擇一個對象時,我們的程序?qū)㈦S機選擇一個對象。然后,它將通過一組規(guī)則來聲明用戶是贏,輸還是畫游戲。結(jié)果將顯示在應(yīng)用程序的第二行。
當用戶按下任何按鈕時,游戲?qū)⒅匦麻_始。如果用戶想要關(guān)閉游戲,則可以按關(guān)閉按鈕。在游戲開始時,我們具有用于特定對象的手形符號?,F(xiàn)在,當用戶選擇一個對象時,它將轉(zhuǎn)換為圖形圖像。我們的程序還選擇了一個對象,它將顯示所選對象的圖形圖像。
用Python實現(xiàn)(10個步驟)
現(xiàn)在我們已經(jīng)有了剪刀石頭布游戲的意義,讓我們逐步介紹Python的過程。
1.導(dǎo)入所需的庫
#Import the required libraries : from tkinter import * import random import simpleaudio as sa
-
tkinter:在我們的應(yīng)用程序中添加小部件
-
random:生成一個隨機數(shù)
-
simpleaudio:播放聲音文件
2.創(chuàng)建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( ):我們使用它來指定應(yīng)用程序的背景色。在我們的情況下,背景顏色為黑色。
-
root.geometry( ):我們使用它來指定我們的應(yīng)用程序窗口將在哪個位置打開。它將在左上角打開。
-
root.iconbitmap( ):我們使用它來設(shè)置應(yīng)用程序窗口標題欄中的圖標。此功能僅接受.ico文件。
-
root.title( ):我們使用它來設(shè)置應(yīng)用程序的標題。
-
root.resizable( ):在這里我們使用它來防止用戶調(diào)整主窗口的大小。
3.導(dǎo)入聲音文件
#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()
現(xiàn)在,我們將使用一些將在各種事件中播放的聲音文件。當我們的程序啟動時,它將播放開始文件。當用戶贏得游戲,輸?shù)粲螒蚧蚶L制游戲時,我們將播放其他三個文件。
需要注意的一件事是它僅接受.wav文件。首先,我們需要將聲音文件加載到對象中。然后我們可以.play( )在需要時使用方法播放它。
4.為我們的應(yīng)用程序加載圖像
我們將在應(yīng)用程序中使用各種圖像。要首先使用這些圖像,我們需要加載這些圖像。在這里,我們將使用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")
首先,我們?yōu)槲矬w準備了手部圖像。游戲開始時將向用戶顯示所有五個圖像。用戶必須從那些圖像中選擇一個對象。
用戶單擊圖像后,我們的程序?qū)⑾蛭覀冿@示該對象的圖形圖像。必須選擇一個對象,我們的程序也將選擇一個對象。我們的程序?qū)H顯示這兩個圖形圖像,然后其余圖像將消失。
現(xiàn)在,我們顯示一個簡單的決策圖像,當結(jié)果可用時,它將更改其圖像。我們的結(jié)果有不同的圖像。
如果用戶獲勝
如果用戶輸了
如果有平局
5.添加Tkinter小部件
#Initialize the button variables : rockHandButton = " " paperHandButton = " " scissorHandButton = " " lizardHandButton= " " spockHandButton = " " #Create the result button : resultButton = Button(root,image=decisionPhoto) #Set the variable to True click = True
初始化五個按鈕的變量。
在這里,我們創(chuàng)建了結(jié)果按鈕,它將向我們顯示最終結(jié)果。
我們將click變量設(shè)置為True,以便我們的程序繼續(xù)運行直到將其設(shè)置為False。在接下來的幾點中,我們將看到