Python3 實現 石頭、剪刀、布 猜拳小遊戲
阿新 • • 發佈:2018-11-02
Python基礎語法
目標
實現一個人與計算機玩猜拳——石頭剪刀布的小遊戲,學會Python的迴圈控制語句和條件判斷語句。
思考一:
假如把石頭、剪刀、布分別用數字0、1、2表示。那麼如何判定誰勝誰負呢?
user(人) | computer(計算機) | 判定結果 |
---|---|---|
0(石頭) | 0(石頭) | 平局 |
0(石頭) | 1(剪刀) | 人獲勝 |
0(石頭) | 2(布) | 計算機獲勝 |
1(剪刀) | 0(石頭) | 計算機獲勝 |
1(剪刀) | 1(剪刀) | 平局 |
1(剪刀) | 2(布) | 人獲勝 |
2(布) | 0(石頭) | 人獲勝 |
2(布) | 1(剪刀) | 計算機獲勝 |
2(布) | 2(布) | 平局 |
那麼這樣的虛擬碼實現如下:
if(user == 0 and computer == 0):
print ("平局")
elif(user == 0 and computer == 1):
print("人獲勝")
elif(user == 0 and computer == 2):
print("計算機獲勝")
elif(user == 1 and computer == 0):
print("計算機獲勝")
elif(user == 1 and computer == 1):
print("平局")
elif(user == 1 and computer == 2):
print("人獲勝")
elif(user == 2 and computer == 0):
print("人獲勝")
elif (user == 2 and computer == 1):
print("計算機獲勝")
elif(user == 2 and computer == 2):
print("平局")
這樣的程式碼不用我說、大家也覺得這個程式碼看起來很繁雜對吧。
找規律
雖然是一個簡單的石頭剪刀布小遊戲,其實背後也有很大的演算法思想、可以找出很多的規律。
- 如果變數user和computer相等就是平局
- 如果用 (user+1) 除以 3 得到的餘數與computer相等就是user(人)獲得勝利
- 其餘情況都是計算機獲勝
import random
# 初始化表示手勢的變數
gesture = ['石頭' , '剪刀', '布']
wins = 0
print("*********************")
print("石頭剪刀布遊戲\nVer 1.0.0 by YuZhou_1su\n")
# 進行5輪遊戲
for i in range(5):
# 輸入玩家的手勢
print("*********************")
print("0:石頭 1:剪刀 2:布")
print("*********************")
user = int(input("請輸入你想出的序號:\n"))
if(user >= 0 and user <= 2):
computer = random.randint(0, 2)
print("玩家: {0}, 計算機: {1}".format(gesture[user], gesture[computer]))
if user == computer:
print("...平局! ")
elif computer == (user + 1) % 3:
print("...玩家獲勝! ")
wins = wins + 1
else:
print("...計算機獲勝! ")
else:
print("***你輸入的序號有錯、請重新輸入!***")
print("玩家獲勝次數: %d " % wins)
總結
我們從此可以看到找到規律後的程式碼短小簡潔,程式的執行速度也會隨之提升。讓我們慢慢的學起來,規律無處不在…