
圖片來源: Wikipedia 關於 猜拳的條目
今天我們來學一個有趣的小專案:
自己用 Python 寫一個「剪刀、石頭、布」猜拳遊戲!
學完這個,你就不只是學程式,還能順便和電腦玩幾把猜拳,重拾兒時回憶喔!😄
🎯 今天我們要透過猜拳遊戲,學會這幾個小技能:
- 怎麼讓玩家輸入資料?
- 怎麼讓電腦「隨機」做出選擇(出拳)?
- 怎麼寫 if ...else ... 語句來實現邏輯判斷(根據出拳狀況決定誰輸誰贏)?
🫲 第一步:先想好我們的「拳」
我們剪刀✌️、石頭✊、布✋,總共有三個選擇。
用python的資列結構來表示,其實就是一個「列表」(List),
依序放著這三種可能的選擇:
choices = ['剪刀', '石頭', '布']
這樣一來,我們就已經完成第一部,列舉出所有可能的選擇。
之後不管是玩家或者電腦吃拳,再從choices選擇一個即可。
🎲 第二步:讓電腦隨機出拳
Python 有個與隨機抽樣和隨機數相關的內建官方模組叫 random,
可以幫我們實現「隨機選擇」。
我們先在程式最上面寫:
import random #代表引入內建的random模組
接著,我們就可以用 random.choice()
來讓電腦實現隨機出拳了:
computer_choice = random.choice(choices)
這行的意思是:從 choices(剪刀、石頭、布)裡,隨機選一個出來!
是不是很很直覺易懂呀?😊
這就是使用python進行開發的優勢之一,語法簡潔,而且容易理解。
🙋♂️ 第三步:請玩家出拳(輸入資料)
我們用 input()
來讓玩家自己打字告訴我們他要出什麼拳:
player_choice = input("請輸入你的選擇(剪刀、石頭、布):")
這行的意思就是:「請玩家輸入出拳的選擇」,然後記錄到play_choice這個變數裡。
🤜🤛 第四步:判斷誰贏了!
玩家和電腦分別出拳後,就下來就是判斷誰輸誰贏囉!
這裡我們要用 if 條件判斷式,來依照剪刀、石頭、布的遊戲規則判斷輸贏:
- 如果玩家和電腦出的拳一樣 ➡️ 平手!
- 如果玩家的拳贏過電腦 ➡️ 玩家贏!
(玩家出剪刀 電腦出布、玩家出石頭 電腦出剪刀、玩家出布 電腦出石頭) - 其他情況 ➡️ 玩家輸!
來,接著把上述的判斷邏輯寫成對應的python程式碼,搭配if條件判斷式:
if player_choice == computer_choice:
print("平手!")
elif (player_choice == '剪刀' and computer_choice == '布') or \
(player_choice == '石頭' and computer_choice == '剪刀') or \
(player_choice == '布' and computer_choice == '石頭'):
print("你贏了!🎉")
else:
print("你輸了!😢")
🪄完整程的式碼
把上面的程式碼片段組合起來,就變成完整的小遊戲囉!
import random
def play_game():
choices = ['剪刀', '石頭', '布']
print("歡迎來到剪刀石頭布遊戲!")
player_choice = input("請輸入你的選擇(剪刀、石頭、布):")
if player_choice not in choices:
print("輸入錯誤,請選擇 剪刀、石頭 或 布")
return
computer_choice = random.choice(choices)
print(f"電腦出拳:{computer_choice}")
if player_choice == computer_choice:
print("平手!")
elif (player_choice == '剪刀' and computer_choice == '布') or \
(player_choice == '石頭' and computer_choice == '剪刀') or \
(player_choice == '布' and computer_choice == '石頭'):
print("你贏了!🎉")
else:
print("你輸了!😢")
# 執行遊戲
play_game()
試玩畫面

試玩畫面
點這行 線上執行 與 試玩(在新的頁面按Run開始玩)
💪 延伸思考(給還想更深入研究、練習python的同學)
- 🌀 加入重複玩的功能(玩到玩家說「不玩了」為止)
- 🏆 記錄玩家的總勝利次數
- ❌ 加入輸入錯誤時,讓玩家可以重新選拳