1. 程式人生 > 其它 >Python-面向物件-人與機器猜拳遊戲-對一次拳累加一次輸贏

Python-面向物件-人與機器猜拳遊戲-對一次拳累加一次輸贏

人和機器猜拳遊戲寫成一個類,有如下幾個函式:
1. 函式1: 選擇角色 1 曹操 2 張飛 3 劉備
2. 函式2: 角色選擇猜拳 1 剪刀 2 石頭 3 布,玩家輸入一個1-3的數字
3. 函式3: 電腦出拳, 隨機產生1個1-3的數字,提示電腦出拳結果
4. 函式4: 角色和機器出拳對戰, 對戰結束後,最後出示本局對戰結果贏/輸,
然後提示使用者是否繼續? 按y繼續,按n退出
5. 最後結束的時候輸出結果 角色贏幾局,電腦贏幾局,平局幾次。

思路分析:

類裡封裝所有的函式
因為後面角色贏幾局,其他幾個函式也要用,所以定義為例項變數
from random import randint,choice
class
Game: def __init__(self): self.xjs=None self.ping=0 self.win=0 self.fail=0 def xuanjiaose(self): dict = {'1': '曹操', '2': '張飛', '3': '劉備'} while True: js = input('請輸入您要選擇的角色') if js in
('1', '2', '3'): self.xjs = dict[js] print('您選擇的角色是%s' % self.xjs) return else: continue def rcq(self): dict={'1':'剪刀','2':'石頭','3':''} while True: cq = input('
請輸入您要選擇的拳') if cq in('1','2','3'): self.cq=dict[cq] print('%s出的拳是%s'%(self.xjs,self.cq)) return self.rcq else: continue def dcq(self): dict={'1':'剪刀','2':'石頭','3':''} list=['1','2','3'] cq=choice(list) dcq=dict[cq] print('電腦出的拳是%s'%dcq) return dcq def duizhan(self): self.xuanjiaose() while True: r=self.rcq() d=self.dcq() if r==d: print('平局') self.ping+=1 elif r=='剪刀' and d=='石頭' or r=='石頭' and d=='' or r=='' and d=='剪刀': print('%s輸了'%self.xjs) self.fail+=1 else: print('%s贏了'%self.xjs) self.win+=1 xw=input('請問您還玩嗎?') if xw=='yes': continue elif xw=='no': print('遊戲中,平局%s,%s贏了%d次,%s輸了%d次'%(self.ping,self.xjs,self.win,self.xjs,self.fail)) break a=Game() a.duizhan()