Python設計一個石頭、剪刀、布的小遊戲(附代碼)

溫馨提示:閱讀文本大概需要10分鐘。

Python設計一個石頭、剪刀、布的小遊戲(附代碼)

石頭剪刀布是一種很受歡迎的遊戲。我們將在python編程語言中實現石頭剪刀布(Rock, Paper, and Scissors)。Python是最簡單的編程語言之一,理解它不需要花費太多時間。讓我們開始吧。

先讓我們分解石頭,剪刀、布

在轉到編碼部分之前,編程和開發的第一條規則始終是分析並分解我們將要實現的內容。將我們的問題分解為更小的步驟稱為分解。在這裡,我們將為遊戲石頭剪刀布創建一個程序。我們將問題分為幾部分。

1.玩家。在這個遊戲中我們需要兩個人,我們將有一個用戶,另一個用戶是計算機。用戶和計算機都將輸入他們的選擇。不用擔心計算機的輸入,它將是最有趣的部分。

2.規則。接下來,我們必須創建示例方案來確定誰是每個回合的贏家。讓我們簡要地討論這些情況:

–當用戶和計算機做出相同選擇時,這是平局。

– 石頭勝過剪刀,輸給布

– 布勝過石頭,輸給了剪刀

– 剪刀戰勝布,輸給石頭

3.退出策略。總會有一個選擇來完成遊戲。

4.誰贏了?我們還需要保留雙方所獲得的積分。

現在我們知道我們將要做什麼。讓我們開始編碼吧!


編寫Python遊戲代碼:分步說明

這款遊戲是使用變量,列表,while循環,if-elif-else階梯和我們從隨機模塊導入的特殊randint方法創建的。我們將在下面介紹所有這些初學者編程概念!

如果您沒有python編輯器,並且正在尋找一種非常簡單的方法立即開始使用Python,則可以使用在線Python IDE編輯器。只需打開此頁面https://repl.it/languages/python3,您就可以立即開始使用!

步驟1:導入模塊

<code>from random import randint/<code>

我們使用'from'和'import'關鍵字從隨機模塊導入randint函數。randint函數具有一些特殊功能,我們將在程序中使用它們。我們將在後面討論。現在我們已經有了重要的功能,可以在我們的代碼中使用它了

步驟2:創建可用選項列表

Python中的數據結構是用戶友好的並且非常易於理解。讓我們看一下第一個數據結構的代碼,一個列表。

<code>#List of options
game = ["Rock", "Paper", "Scissors"]/<code>

Python中還有其他數據結構,每個結構都有不同的功能。使用方括號創建列表,要檢索它的值,我們需要做的就是,寫下列表的名稱,後跟兩個方括號,然後輸入要檢索的值的索引。例如:

<code>game[1]/<code>

步驟3:讓電腦隨機選擇

我們已經導入了randint函數,並且我們還知道如何從列表中檢索值。現在是時候結合這兩個概念,我們需要獲得計算機的選擇。以下代碼就是計算機在此程序中隨機選擇的方式。

<code>#Assigning a random option to computer
computer = game[randint(0,2)]/<code>

我們創建了一個名為computer的變量,該變量將保存計算機的選擇。我們已經有了選擇列表,接下來需要考慮讓計算機可以隨機選擇其中之一。這是randint函數發揮作用的地方。

randint函數用於生成隨機值。將上下限參數傳遞給此函數,並且返回值始終在此範圍之間。根據列表定義,我們將傳遞參數0和2,遊戲具有三個值,0是第一個值。因此,這裡返回0、1和2共三個選項!

<code>game[randint(0,2)]/<code>


我們將整個randint函數寫在方括號內,這樣返回的隨機數就可以作為索引。現在,計算機做出了選擇,並保存在變量中。

第4步:讓我們在開始遊戲之前定義更多變量

變量是編程的重要組成部分。對於我們的石頭剪刀布遊戲,還有一些其他變量需要考慮。

<code>playersPoint = 0
computersPoint = 0/<code>


這兩個變量將為用戶和計算機保存分數,所以要初始化為零。

<code>goOn = True/<code>

除了選項之外,用戶還可以結束遊戲。當用戶輸入“Finish”時,上述變量將結束遊戲。goOn變量設置為True,這是while循環的條件。

當用戶輸入“Finish”時,此變量的值將更改為false,遊戲結束。

步驟5:創建While循環

while循環允許我們的遊戲運行,直到遊戲被用戶結束為止。

<code>#Loop goes on until goOn is false
while(goOn):/<code>

在括號中,使用了goOn變量。goOn變量的值為True,這意味著while循環中的條件為true,它將一直運行直到條件為false。稍後,當用戶鍵入“Finish”時,我們將告訴程序將goOn變量更改為false。

步驟6:允許用戶輸入
while循環中的第一行代碼是:

<code>#Ask for user input

player = input("Rock, Paper or Scissors? or enter Finish to end!\\n")/<code>

這是我們要求用戶選擇的地方。四個選項是“石頭(Rock)”,“布(Paper)”,“剪刀(Scissors)”和“完成(Finish)”。用戶必須輸入其中之一,否則程序將不會繼續。

選項存儲在player變量中,函數內編寫的文本出現在屏幕上。我們必須完全按照要求輸入值!這是大小寫敏感的!

步驟7:定義方案

我們有兩個變量:computer和player,分別存有計算機和用戶的選擇。

現在是時候決定獲勝者了。我們將通過使用if-elif-else梯形圖來實現。

<code>#Check for scenarios
if(player == 'Finish'):
goOn = False
elif(player == computer):
print("Tie!")
elif(player == "Rock"):
if(computer == "Paper"):
print("You lose!", computer, "covers", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "smashes", computer)
playersPoint = playersPoint + 1
elif(player == "Paper"):
if(computer == "Scissors"):
print("You lose!", computer, "cut", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "covers", computer)
playersPoint = playersPoint + 1
elif(player == "Scissors"):
if(computer == "Rock"):
print("You lose...", computer, "smashes", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "cut", computer)
playersPoint = playersPoint + 1
else:
print("That's not a valid play. Check your spelling!")/<code>


讓我們瞭解一下“if-elif-else”的工作原理。每個if和elif在括號中都有一個條件部分。程序將進入條件為真的那個塊。一旦找到真實條件,它將忽略所有其他條件。但是,當所有條件都不成立時會發生什麼?執行進入else塊。再次觀察上面的代碼,else塊沒有條件。

我們將逐步討論所有條件。

1.第一個條件檢查用戶是否輸入了“Finish”。如果此條件為true,則goOn變量的值將更改為false,程序將結束。

<code>if(player == 'Finish'):
goOn = False/<code>

2.第二個條件檢查用戶和計算機的選擇是否相同。在這種情況下,任何人都不會獲得得分。

<code>elif(player == computer):
print("Tie!")/<code>

3.接下來的三個條件根據遊戲的基本概念起作用。決定贏家,並相應地獎勵積分。之前,我們用0初始化了兩個變量,computersPoint和playersPoint。如果計算機獲勝,則computersPoint變量將增加1,如果用戶獲勝,playersPoint變量將增加1。

<code>elif(player == "Rock"):
if(computer == "Paper"):
print("You lose!", computer, "covers", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "smashes", computer)

playersPoint = playersPoint + 1
elif(player == "Paper"):
if(computer == "Scissors"):
print("You lose!", computer, "cut", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "covers", computer)
playersPoint = playersPoint + 1
elif(player == "Scissors"):
if(computer == "Rock"):
print("You lose...", computer, "smashes", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "cut", computer)
playersPoint = playersPoint + 1
/<code>

4.最後是else塊。沒有條件。僅當用戶輸入無效選項時,它才會顯示一條消息。

<code>else:
print("That's not a valid play. Check your spelling!")
/<code>

步驟8:允許遊戲繼續

在while循環結束時,我們再次使用randint函數為計算機分配選項。

<code>#Assigning a random option to computer
computer = game[randint(0,2)]
print('********Next Turn********')/<code>

即使我們在遊戲開始時有類似的代碼行,也必須重複此操作。請記住,計算機必須要做出選擇。這就是為什麼我們再次編寫此行代碼的原因。

步驟9:顯示最終分數

當用戶通過鍵入“完成”結束遊戲時,程序將顯示最終得分。最終分數存儲在我們之前使用的兩個變量中,computersPoint和playersPoint。

<code>#Printing final points
print("********Final Points********")
print("Player: ", playersPoint)
print("Computer: ", computersPoint)/<code>


Python設計一個石頭、剪刀、布的小遊戲(附代碼)


剪刀石頭布完整代碼

您需要完整的代碼,才能在Python中運行“剪刀石頭布”遊戲。您可以將此代碼複製並粘貼到https://repl.it/languages/python3中,然後自己玩這個遊戲!

<code>from random import randint

#List of options
game = ["Rock", "Paper", "Scissors"]

#Assigning a random option to computer
computer = game[randint(0,2)]


#Keep count for points
playersPoint = 0
computersPoint = 0

goOn = True

#Loop goes on until goOn is false
while(goOn):
#Ask for user input
player = input("Rock, Paper or Scissors? or enter Finish to end!\\n")

#Check for scenarios
if(player == 'Finish'):
goOn = False
elif(player == computer):
print("Tie!")
elif(player == "Rock"):
if(computer == "Paper"):
print("You lose!", computer, "covers", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "smashes", computer)
playersPoint = playersPoint + 1

elif(player == "Paper"):
if(computer == "Scissors"):
print("You lose!", computer, "cut", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "covers", computer)
playersPoint = playersPoint + 1
elif(player == "Scissors"):
if(computer == "Rock"):
print("You lose...", computer, "smashes", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "cut", computer)
playersPoint = playersPoint + 1
else:
print("That's not a valid play. Check your spelling!")
#Assigning a random option to computer
computer = game[randint(0,2)]
print('********Next Turn********')

#Printing final points
print("********Final Points********")
print("Player: ", playersPoint)
print("Computer: ", computersPoint)/<code>

用戶可以輸入“ Rock”,“ Paper”或“ Scissors”進行遊戲,或輸入“ Finish”結束遊戲。然後將值與計算機的選擇相匹配,並相應地分配分數。遊戲結束後,最終分數將顯示在屏幕上。

這就是我們可以使用python創建簡單的石頭剪刀布遊戲的方式。


Python設計一個石頭、剪刀、布的小遊戲(附代碼)


分享到:


相關文章: