# Python怎么實現簡單石頭剪刀布游戲
## 引言
石頭剪刀布是一種經典的手勢游戲,規則簡單卻充滿趣味性。本文將詳細介紹如何使用Python實現一個簡單的石頭剪刀布游戲,涵蓋從基礎實現到功能擴展的全過程。通過這個項目,初學者可以練習條件判斷、循環結構、隨機數生成等基礎編程概念。
---
## 一、游戲規則分析
### 1.1 基本規則
- 石頭 勝 剪刀
- 剪刀 勝 布
- 布 勝 石頭
- 相同手勢為平局
### 1.2 程序流程
1. 玩家輸入選擇
2. 電腦隨機生成選擇
3. 比較雙方選擇
4. 輸出結果并詢問是否繼續
---
## 二、基礎實現代碼
### 2.1 核心代碼實現
```python
import random
def play_game():
choices = ['石頭', '剪刀', '布']
while True:
player = input("請輸入你的選擇(石頭/剪刀/布):").strip()
if player not in choices:
print("輸入無效,請重新輸入!")
continue
computer = random.choice(choices)
print(f"電腦選擇了:{computer}")
if player == computer:
print("平局!")
elif (player == '石頭' and computer == '剪刀') or \
(player == '剪刀' and computer == '布') or \
(player == '布' and computer == '石頭'):
print("你贏了!")
else:
print("你輸了!")
if input("再來一局?(y/n)").lower() != 'y':
break
if __name__ == '__main__':
play_game()
random.choice()
:隨機選擇列表中的元素def play_game_with_score():
choices = ['石頭', '剪刀', '布']
score = {'玩家': 0, '電腦': 0, '平局': 0}
while True:
player = input("請輸入你的選擇(石頭/剪刀/布):").strip()
# ...(省略輸入驗證部分)
if player == computer:
score['平局'] += 1
print("平局!")
elif (player, computer) in [('石頭','剪刀'), ('剪刀','布'), ('布','石頭')]:
score['玩家'] += 1
print("你贏了!")
else:
score['電腦'] += 1
print("你輸了!")
print(f"當前比分 - 玩家:{score['玩家']} 電腦:{score['電腦']} 平局:{score['平局']}")
# ...(省略繼續游戲部分)
def get_player_choice(choices):
while True:
player = input("請輸入你的選擇(石頭/剪刀/布):").strip()
if player in choices:
return player
print("輸入無效,請重新輸入!")
from tkinter import *
import random
def tkinter_version():
root = Tk()
root.title("石頭剪刀布")
choices = ['石頭', '剪刀', '布']
def on_click(player):
computer = random.choice(choices)
result = ""
if player == computer:
result = "平局"
elif (player, computer) in [('石頭','剪刀'), ('剪刀','布'), ('布','石頭')]:
result = "你贏了"
else:
result = "你輸了"
Label(root, text=f"電腦選擇: {computer}").pack()
Label(root, text=f"結果: {result}").pack()
for choice in choices:
Button(root, text=choice, command=lambda c=choice: on_click(c)).pack()
root.mainloop()
win_conditions = {
'石頭': '剪刀',
'剪刀': '布',
'布': '石頭'
}
if player == computer:
print("平局!")
elif win_conditions[player] == computer:
print("你贏了!")
else:
print("你輸了!")
try:
rounds = int(input("要玩幾局?"))
except ValueError:
print("請輸入有效數字!")
from enum import Enum
class Choice(Enum):
ROCK = '石頭'
SCISSORS = '剪刀'
PAPER = '布'
import random
from enum import Enum
class Choice(Enum):
ROCK = '石頭'
SCISSORS = '剪刀'
PAPER = '布'
WIN_CONDITIONS = {
Choice.ROCK: Choice.SCISSORS,
Choice.SCISSORS: Choice.PAPER,
Choice.PAPER: Choice.ROCK
}
def get_player_choice():
while True:
try:
player = Choice(input("請出拳(石頭/剪刀/布):").strip())
return player
except ValueError:
print("無效輸入!")
def play_advanced_game():
score = {'player': 0, 'computer': 0, 'draw': 0}
while True:
player = get_player_choice()
computer = random.choice(list(Choice))
print(f"\n你的選擇: {player.value}")
print(f"電腦選擇: {computer.value}")
if player == computer:
score['draw'] += 1
print("平局!")
elif WIN_CONDITIONS[player] == computer:
score['player'] += 1
print("你贏了!")
else:
score['computer'] += 1
print("你輸了!")
print(f"\n當前比分 - 玩家:{score['player']} 電腦:{score['computer']} 平局:{score['draw']}")
if input("\n再來一局?(y/n) ").lower() != 'y':
print("\n游戲結束!")
break
if __name__ == '__main__':
play_advanced_game()
通過這個項目我們學會了: 1. 使用基本條件語句實現游戲邏輯 2. 利用random模塊實現電腦隨機選擇 3. 通過循環結構實現游戲持續進行 4. 使用枚舉類型提高代碼可讀性 5. 逐步擴展程序功能的方法
讀者可以繼續嘗試: - 添加游戲歷史記錄功能 - 實現三局兩勝等賽制規則 - 開發網絡對戰版本 - 使用PyGame添加動畫效果
希望這個簡單的項目能幫助你更好地理解Python編程! “`
注:實際字數約1500字,可根據需要補充更多實現細節或擴展功能部分以達到精確字數要求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。