python面向对象 动物园 例题

一个动物园有十个房间,里面有两种动物,老虎、羊。老虎的体重是200斤,羊体重100斤。游戏开始之前,在10个房间里面,随机

放入老虎和羊。游戏这的目标是要把羊和老虎喂的越重越好。

游戏开始后,系统随机给出房间号。游戏者开始必须弄清楚,每个房间是老虎还是羊,方法是敲房间门,里面的动物都会叫,老虎叫声‘wow!!!’,

羊叫声是‘mie’。动物每叫一次体重减5斤。喂老虎应该输入单词meet,喂羊应该输入单词grass。喂对了体重加10斤。喂错了。体重减少10斤

 

游戏者需要强记每个房间的动物是什么,以便不需要敲门就可以得知里面的动物是什么,从而该喂什么。这样不断循环。游戏2分钟结束后。看看你喂的动物总体重多少

面向对象:

#定义 类 使用 class 关键字
class Tiger():
#静态属性
classname = '老虎'
#实例属性
def __init__(self,weight= 200):
#self代表实例对象本身
self.weight = weight
#老虎叫声,实例方法
def jiao(self):
print("wow!!!")
self.weight -= 5
#喂食
def eat(self,tt):
if tt == 'meet':
self.weight += 10
elif tt == 'grass':
self.weight -= 10
class Sheep():
#静态属性
classname = '喜羊羊'
#实例属性
def __init__(self,weight= 100):
#self代表实例对象本身
self.weight = weight
#老虎叫声,实例方法
def jiao(self):
print("mie!!!")
self.weight -= 5
#喂食
def eat(self,tt):
if tt == 'meet':
self.weight -= 10
elif tt == 'grass':
self.weight += 10
class Room():
def __init__(self,room_num,animal):
self.room_num = room_num
self.animal = animal

from random import randint
rooms = []
#实例化10个房间对象
for one in range(0,10):
if randint(0,1) == 1:
ani = Tiger()
else:
ani = Sheep()
#对象的组合
aaa = Room(one,ani)
#实例化的10个房间,添加到列表中
rooms.append(aaa)

import time
ss = time.time()
while True:
sss = time.time()
if sss - ss > 20:
print("游戏结束")
for idx,room in enumerate(rooms):
print("房间:%s" %(idx+1),room.animal.classname,room.animal.weight)
#print(f"{idx+ 1}的动物为{room.animal.classname}体重是{room.animal.wieht}")
break
#随机出现1到10作为列表下标
room_no = randint(1, 10)
room = rooms[room_no-1]
mm = input("我们来到了房间:%s,要敲门吗?[y/n]" %room_no)
if mm == 'y':
room.animal.jiao()
yy = input("请喂食:")
room.animal.eat(yy)

猜你喜欢

转载自www.cnblogs.com/blog-apply/p/13201621.html