Python 面向对象 老虎和羊问题详解
生活随笔
收集整理的這篇文章主要介紹了
Python 面向对象 老虎和羊问题详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個動物園有十個房間,里面有兩種動物,老虎、羊。老虎的體重是200斤,羊體重100斤。游戲開始之前,在10個房間里面,隨機
放入老虎和羊。游戲這的目標是要把羊和老虎喂的越重越好。
游戲開始后,系統隨機給出房間號。游戲者開始必須弄清楚,每個房間是老虎還是羊,方法是敲房間門,里面的動物都會叫,老虎叫聲‘wow!!!’,
羊叫聲是‘mie’。動物每叫一次體重減5斤。喂老虎應該輸入單詞meet,喂羊應該輸入單詞grass。喂對了體重加10斤。喂錯了。體重減少10斤
游戲者需要強記每個房間的動物是什么,以便不需要敲門就可以得知里面的動物是什么,從而該喂什么。這樣不斷循環。游戲2分鐘結束后。看看你喂的動物總體重多少
class Tiger:#定義一個老虎類#靜態方法 這個類的所有實例化都是一樣的classname = '東北虎'def __init__(self):#初始化方法,有個參數有初始固定值self.weight = 200def eat(self,food): #定義一個方法if food == 'meat':self.weight += 10elif food == 'grass':self.weight -= 10else:passdef jiao(self): #定義一個屬性print("Wow~~~")self.weight -= 5class Sheep:classname = '喜羊羊'def __init__(self):self.weight = 100def eat(self,food):if food == 'meat':self.weight += 10elif food == 'grass':self.weight -= 10else:passdef jiao(self):print("mie~~~")self.weight -= 5class Room: #定義一個房間類,它有房號和動物兩種參數def __init__(self,num,animal):self.num = numself.animal = animalfrom random import randint room_list = [] #建一個列表用來存取每次循環獲取到的房間號和動物組合 for i in range(1,11):if randint(1,2) == 1: #隨機判斷animal = Tiger() #實例化一個老虎else :animal = Sheep()#實例化一個羊rm = Room(i,animal) #實例化一個房間,傳入房間類需要的參數room_list.append(rm) #把循環每次得到的房間號和動物組合存到列表,因為rm的值每次循環后會清掉import time startTime = time.time()#獲取當前時間并存入startTime while time.time() - startTime < 15:#15秒為測試時間,驗證程序是否編寫正確room_num = randint(0在這里插入代碼片,9)#隨機生成是個房間fangjian = room_list[room_num]#隨機使用一個房間a = input(f'當前訪問的是{room_num + 1}號房間,請問是否需要敲門(y/n)')if a == 'y':fangjian.animal.jiao() #面向對象 房間類的實例化調用動物的屬性# print(f'{room_num + 1}號房間的動物是{fangjian.animal.classname},當前體重{fangjian.animal.weight}')else:passb = input(f'請問需要喂食嗎?(y/n)')if b == 'y':c = input(f'請選擇需要喂的食物種類:(meat/grass)')if c == 'meat' or c == 'grass':fangjian.animal.eat(c)else:print("您輸入的食物不對!")else:pass else:for i in range(10):print(f'{i + 1}號房間的動物是{room_list[i].animal.classname},當前體重{room_list[i].animal.weight}')總結
以上是生活随笔為你收集整理的Python 面向对象 老虎和羊问题详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特征选择与特征权重计算的区别
- 下一篇: linux下看学校的IPTV