溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲

發(fā)布時(shí)間:2020-10-26 14:56:52 來源:億速云 閱讀:198 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

讓我們使用Python 3和Tkinter開發(fā)相同的游戲。我們可以將游戲命名為Rock-Paper-Scissors-Lizard-Spock

規(guī)則和玩法

  1. ock crushes Scissors
  2. Rock crushes Lizard
  3. Paper covers Rock
  4. Paper disproves Spock
  5. Scissors cuts Paper
  6. Scissors decapitates Lizard
  7. Lizard poisons Spock
  8. Lizard eats paper
  9. Spock smashes Scissors
  10. Spock vaporizes Rock
  11. Two same objects is a draw

程序演練

當(dāng)用戶運(yùn)行程序時(shí),他們必須單擊五個可用對象之一:

  1. Rock
  2. Paper
  3. Scissors
  4. Lizard
  5. Spock

Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲

當(dāng)用戶選擇一個對象時(shí),我們的程序?qū)㈦S機(jī)選擇一個對象。然后,它將通過一組規(guī)則來聲明用戶是贏,輸還是畫游戲。結(jié)果將顯示在應(yīng)用程序的第二行。

當(dāng)用戶按下任何按鈕時(shí),游戲?qū)⒅匦麻_始。如果用戶想要關(guān)閉游戲,則可以按關(guān)閉按鈕。在游戲開始時(shí),我們具有用于特定對象的手形符號?,F(xiàn)在,當(dāng)用戶選擇一個對象時(shí),它將轉(zhuǎn)換為圖形圖像。我們的程序還選擇了一個對象,它將顯示所選對象的圖形圖像。

用Python實(shí)現(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:生成一個隨機(jī)數(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)用程序窗口標(biāo)題欄中的圖標(biāo)。此功能僅接受.ico文件。
  • root.title( ):我們使用它來設(shè)置應(yīng)用程序的標(biāo)題。
  • 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)在,我們將使用一些將在各種事件中播放的聲音文件。當(dāng)我們的程序啟動時(shí),它將播放開始文件。當(dāng)用戶贏得游戲,輸?shù)粲螒蚧蚶L制游戲時(shí),我們將播放其他三個文件。

需要注意的一件事是它僅接受.wav文件。首先,我們需要將聲音文件加載到對象中。然后我們可以.play( )在需要時(shí)使用方法播放它。

Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲

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準(zhǔn)備了手部圖像。游戲開始時(shí)將向用戶顯示所有五個圖像。用戶必須從那些圖像中選擇一個對象。

用戶單擊圖像后,我們的程序?qū)⑾蛭覀冿@示該對象的圖形圖像。必須選擇一個對象,我們的程序也將選擇一個對象。我們的程序?qū)H顯示這兩個圖形圖像,然后其余圖像將消失。

現(xiàn)在,我們顯示一個簡單的決策圖像,當(dāng)結(jié)果可用時(shí),它將更改其圖像。我們的結(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ù)運(yùn)行直到將其設(shè)置為False。在接下來的幾點(diǎn)中,我們將看到更多有關(guān)此的內(nèi)容。

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)

在這里,我們?yōu)閷ο髣?chuàng)建按鈕。我們將為按鈕設(shè)置圖像,當(dāng)按下按鈕時(shí),它將youPick( )與單擊的對象的字符串名稱一起起作用。

然后,使用該.grid( )方法將按鈕排列在主窗口上。在這里,我們在的第一行添加一個空格.grid_rowconfigure( )。然后,將結(jié)果按鈕放在第二行。我們正在使用columnspan結(jié)果按鈕居中。

7.輪到計(jì)算機(jī)了

我們的計(jì)算機(jī)將隨機(jī)選擇五個可用對象之一,并為此返回一個字符串值。

def computerPick():
 choice = random.choice(["Rock","Paper","Scissor","Lizard","Spock"])
 return choice

8.主要功能: youPick( )

在此功能中,我們的程序?qū)@示所選對象的圖形圖像。它將刪除其余的對象。它還將應(yīng)用一組規(guī)則來生成結(jié)果。

def youPick(yourChoice):
 global click
  compPick = computerPick()
  if click==True:

我們將計(jì)算機(jī)的選擇存儲在compPick變量中。我們將使用它來確定結(jié)果。

用戶選擇Rock:

如果用戶選擇Rock,則使用此代碼塊。play( )函數(shù)中的命令沿字符串發(fā)送,該字符串代表用戶選擇的對象。我們將其存儲在yourChoice變量中?,F(xiàn)在,計(jì)算機(jī)有五種可能性。

現(xiàn)在我們必須為每個規(guī)則制定規(guī)則?,F(xiàn)在注意,當(dāng)用戶和計(jì)算機(jī)選擇一個對象時(shí),不允許他們對其進(jìn)行更改。因此,我們將click變量更改為False。

現(xiàn)在,由于用戶已選擇,Rock我們希望我們的第一張圖像變成巖石的圖形圖像?,F(xiàn)在,如果計(jì)算機(jī)選擇Rock,那么我們希望我們的第二張圖像變成圖形圖像。要更改按鈕的圖像,我們使用.configure( )方法。

我們希望其余三個圖像消失。為了使它們消失,我們使用.grid_forget( )。它還將播放繪圖音頻?,F(xiàn)在,我們?yōu)槠溆鄬ο箝_發(fā)類似的規(guī)則。

def computerPick():choice = random.choice(["Rock","Paper","Scissor","Lizard","Spock"])return choice

用戶選擇紙張:

請參閱上面的規(guī)則,以了解用戶選擇“紙張”時(shí)的規(guī)則。查看下面的代碼,該代碼遵循與Rock相同的規(guī)則。

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

用戶選擇剪刀:

請從上方查看規(guī)則,以了解用戶選擇剪刀時(shí)的規(guī)則。查看下面的代碼,該代碼遵循與Rock and Paper相同的規(guī)則。

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"

請從上方查看規(guī)則,以了解用戶選擇蜥蜴的規(guī)則。查看下面的代碼,該代碼遵循與其他代碼相同的規(guī)則。

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:

請從上方查看規(guī)則,以了解用戶選擇Spock的規(guī)則。查看下面的代碼,該代碼遵循與其他代碼相同的規(guī)則。

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.再玩一次

得到結(jié)果后,如果要再次播放,只需單擊任何按鈕。它將轉(zhuǎn)換為原始的手部圖像?,F(xiàn)在,我們必須取回那些消失的圖像。我們將click變量的值設(shè)置為True。然后,我們將播放開始聲音文件,以便在用戶進(jìn)入新游戲時(shí)將播放音頻。

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.調(diào)用函數(shù)

Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲

現(xiàn)在我們調(diào)用play函數(shù),它將在內(nèi)部處理其余函數(shù)。要關(guān)閉該應(yīng)用程序,請按標(biāo)題欄上的關(guān)閉按鈕。

#Calling the play function :
play()
 
#Enter the main loop :
root.mainloop()

放在一起

查看此Python Tkinter游戲的完整代碼。

#Import the required libraries :
from tkinter import *
import random
import 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 True
click = 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實(shí)現(xiàn)剪刀石頭布小游戲,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI