今天的這篇文章呢是對人機猜拳小游戲——石頭剪刀布的一個描述以及代碼展現
石頭剪刀布游戲代碼的簡介:關于石頭剪刀布這個小游戲,大致得到思路就是,玩家出一個手勢,然后電腦再隨機出一個手勢,最后再判斷是玩家獲勝還是電腦獲勝。最簡單的思路就是將這三個手勢是三個代號來表示,然后再去判斷代號之間的關系,最后輸出勝方。
最一般情況下,最先想到的就是使用1、2、3數字來對三個手勢進行代號化,然后再通過代號的大小去判斷,如下是對這個方式的簡述:
石頭 代號 用1來表示
剪刀 代號 用2來表示
布 代號 用3來表示
石頭 > 剪刀
剪刀 > 布
布 > 石頭
站在玩家的角度考慮玩家勝利的情況(分析電腦勝利也是一樣的):如果玩家出的是石頭,只有電腦出剪刀時玩家才可以勝利,石頭代號為1 ,剪刀代號為2,石頭代號<剪刀代號,同時石頭代號也<布的代號;如果玩家出的是剪刀,只有電腦出布時玩家才可以勝利,剪刀代號為2 ,布代號為3,剪刀代號<布代號;如果玩家出的是布,只有電腦出石頭是玩家才可以勝利,布的代號為3,石頭代號為1,布的代號>石頭的代號。由這三條分析可以看出,單純用這三個數字來比較大小的方式(即玩家手勢代號大于或者小于電腦手勢代號的方式)比較復雜。
1. 本代碼思路,使用三種分類方式:玩家贏,平局,玩家輸 來進行三種判斷,當玩家出石頭(1)并且電腦出剪刀(2)或者玩家出剪刀(2)并且電腦出布(3)或者玩家出布(3)并且電腦出石頭(1)這三種情況時,玩家贏;當玩家和電腦的手勢代號一致時,平局;其他情況玩家輸。
代碼如下:
import random #導包print("********歡迎來到猜拳小游戲********")while True: key = int(input("請輸入您的出拳選項:1,剪刀。2,石頭。3,布:")) #從鍵盤上得到手勢代號 while (key not in [1, 2, 3]): #判斷當輸入的手勢代號是否符合要求,不符合要求時,重新輸入 print("您的輸入有誤,請重新輸入") key = int(input("請輸入您的出拳選項:1,剪刀。2,石頭。3,布:")) com_key=random.randint(1,3) #利用隨機函數隨機生成1到3之間的整數 if (key==1 and com_key==2) or (key==2 and com_key==3) or (key==3 and com_key==1): print("恭喜你啦,你贏了呦,加油!!!") elif key==com_key: print("此局是平局") else: print("真是遺憾呢,你輸了。。。。") n=input("請輸入n結束游戲或者輸入其他字符繼續游戲:") if n=="n": breakprint("游戲結束")
運行結果如下:
新聞熱點
疑難解答