python類與物件小練習2
阿新 • • 發佈:2019-01-30
#人和機器猜拳遊戲 #選擇角色1 曹操 2張飛 3 劉備 #角色猜拳1剪刀 2石頭 3布 隨便輸入一個字元隨機產生一個1-3的數字 #電腦出拳 隨機產生1個1-3的數字,提示電腦出拳結果,本局對戰結果...贏...輸,是否繼續?y/n #輸出結果 角色贏幾局 電腦贏幾局,平局幾次 遊戲結束 import random #寫法------2 class ren(): nam="" def __init__(self,name): #name引數=(zidian[inp]) self.nam=name #建立nam屬性 def caiquan(self): #ren方法 return random.randint(1,3) #返回生成隨機數 class zongju(): jieguo1=0 #建立3個類屬性 jieguo2=0 jieguo3=0 def __init__(self): #自動執行方法 zidian1={1:"剪刀",2:"石頭",3:"布"} wanjia=self.fff() #呼叫物件fff方法 建立一個ren類物件 diannao = ren("電腦") #建立一個ren類物件 while 1 : input("請輸入任意健進行猜拳------") wan=wanjia.caiquan() #建立變數呼叫物件的caiquan方法 dian=diannao.caiquan() #...呼叫隨機方法 if wan==1 and dian==2 or wan==2 and dian==3 or wan==3 and dian==1: print("電腦勝\n{0}---------{1}\n電腦---------{2}:"\ .format(wanjia.nam,zidian1[wan],zidian1[dian])) #用健去取值 self.jieguo1+=1 #物件屬性值 elif wan==dian : print("雙方平局\n{0}---------{1}\n電腦---------{2}:"\ .format(wanjia.nam,zidian1[wan],zidian1[dian])) self.jieguo2+=1 else: print("{0}勝\n{0}---------{1}\n電腦---------{2}:"\ .format(wanjia.nam,zidian1[wan],zidian1[dian])) self.jieguo3+=1 if input("是否繼續? yes任意鍵---n退出")=="n": break print("----------------玩家vs電腦--------------\n比賽總結果為:\n電腦勝-----{0}\n玩家勝-----{1}" "\n平局為-----{2}".format(self.jieguo1,self.jieguo3,self.jieguo2)) if self.jieguo1>self.jieguo3: print("總比分為----電腦勝!") elif self.jieguo1<self.jieguo3: print("總比分為----玩家勝!") else: print("總比分為----雙方平局!") def fff(self): zidian = {1: "曹操", 2: "張飛", 3: "劉備"} print("--------------人機猜拳遊戲-----------------") while 1: inp=input("請選擇角色\n1: 曹操 2: 張飛 3: 劉備") if inp.isdigit(): inp=int(inp) if inp in zidian: mingzi=ren(zidian[inp]) #引數給了類中初始化方法 #建立一個ren類物件 print("您選擇的角色是:",mingzi.nam) #輸出物件屬性 return mingzi #返回物件 else: print("人物選擇錯誤!請從新選擇") else: print("輸入有誤請從新輸入") zongju() # 自動建立zongju類物件 執行物件