禁白嫖的含义就是
尊重我的劳动成果 点赞 打赏 转发 谢谢您各位捧场
烤地瓜 定义属性和方法
class SweetPotato:
#定义地瓜的属性 cookLevel * cookString * condiments
def __init__(self):
self.cookLevel=0
self.cookString='烤的红薯是生的'
self.condiments=[]
#定义魔法方法 将输出格式进行美化 直接输出类名即可,不需要调用方法或者属性
def __str__(self):
msg='红薯'+self.cookString
if len(self.condiments)>0:
msg=msg+'('
for tempin self.condiments:
msg=msg+temp+','
msg=msg.strip(',')
msg=msg+')'
return msg
#定义烤的方法 参数为时间 判断一下等级相对应的程度
def cook(self,time):
self.cookLevel+=time
if self.cookLevel>=8:
self.cookString='烤成灰了'
elif self.cookLevel>=5:
self.cookString='已经烤熟了'
elif self.cookLevel>=3:
self.cookString='烤的半生不熟'
else:
self.cookString='红薯烤的是生的'
#给红薯添加酱料
def add_condiments(self,condiments):
self.condiments.append(condiments)
#实例化类对象 并且进行调用相对应的属性和方法
mySweetPotato=SweetPotato()
#红薯的初始值 直接进行调用并且进行输出
print('-----准备好了一个红薯,还没开始烤-----')
print('红薯烤的等级*',mySweetPotato.cookLevel,'烤红薯的状态*',mySweetPotato.cookString,'红薯的蘸酱*',mySweetPotato.condiments)
#开始烤红薯 规定烤的时间 判断一下红薯的生熟程度
print('-----接下来就要开始烤红薯了-----')
print('----- 将红薯开始烤4分钟 -----')
mySweetPotato.cook(4)
print('红薯烤的等级*',mySweetPotato.cookLevel,'烤红薯的状态*',mySweetPotato.cookString,'红薯的蘸酱*',mySweetPotato.condiments)
print('----- 红薯还没有熟,继续烤红薯 -----')
print('----- 继续烤红薯3分钟 -----')
mySweetPotato.cook(3)
print('-----开始往红薯上沾酱料 -----')
print('-----往红薯上蘸蜂蜜酱 -----')
mySweetPotato.add_condiments('蜂蜜酱')
#因为__str__为魔法方法 直接输出类名即可
print(mySweetPotato)
print('----- 将红薯再次烘烤5分钟 -----')
mySweetPotato.cook(5)
print('----- 在红薯上蘸上芥末酱 -----')
mySweetPotato.add_condiments('芥末酱')
print(mySweetPotato)
装修房子 存入物件
#实例化两个类对象 房间和床 房间的面积和床的面积进行比较如果小于的话可以直接放入床品类
#注 * 如果两个对象之间有一定的关系,那么这个对象一定是另外一个对象的属性 后者对象也同要有属性和方法
class Room:
def __init__(self,area):
self.area=area
self.containsItem=[]
def __str__(self):
msg='房间的面积为*'+str(self.area)
if len(self.containsItem) >0:
msg=msg+'容纳的物品有*'
for itemin self.containsItem:
msg=msg+item.getName()+','
msg=msg.strip(', ')
return msg
def accommodateItem(self,item):
needArea =item.getUsedArea()
if self.area > needArea:
self.containsItem.append(item)
self.area -= needArea
print('ok,该物件已经摆放到房间中')
else:
print('房间面积为*%d,但是该物件的面积为*%d ' % (self.area,needArea))
class Bed:
def __init__(self,area,name='bed'):
self.area=area
self.name=name
def __str__(self):
msg='床的面积为*'+str(self.area)
return msg
def getUsedArea(self):
return self.area
def getName(self):
return self.name
room=Room(100)
print(room)
bed=Bed(20)
print(bed)
room.accommodateItem(bed)
print(room)
bed2=Bed(30,'席梦思')
room.accommodateItem(bed2)
print(bed2,room)
射击类游戏创建
'''
创建的类 属性 方法
人 姓名 血量 持有的枪 安弹夹 安子弹 持枪 开枪(射子弹)
敌人 姓名 血量 持有的枪
枪 弹夹 连接弹夹 射子弹
弹夹 当前的子弹数量 容量 保存子弹 射出子弹
子弹 杀伤力 伤害敌人 (让敌人掉血量)
'''
class Human:
def __init__(self,name):
self.name=name
self.blood=100
self.qiang=None
def __str__(self):
return self.name+'剩余血量为*'+str(self.blood)
def andanjia(self,danjia,qiang):
qiang.lianjiedanjia(danjia)
def anzidan(self,danjia,zidan):
danjia.anzidan(zidan)
def naqiang(self,qiang):
self.qiang=qiang
def kaiqiang(self,diren):
self.qiang.kaiqiang(diren)
def loseBlood(self,killPower):
self.blood -=killPower
class Qiang:
def __init__(self):
self.danjia=None
def __str__(self):
if self.danjia:
return '枪当前有弹夹'
else:
return '枪当前没有弹夹'
def lianjiedanjia(self,danjia):
if not self.danjia:
self.danjia=danjia
def kaiqiang(self,diren):
zidan=self.danjia.shezidan()
if zidan:
zidan.shanghai(diren)
else:
print('没有子弹了,放了空枪')
class Danjia:
def __init__(self,rongliang):
self.rongliang=rongliang
self.rongnaList=[]
def __str__(self):
return '弹夹当前的子弹数量为*' +str(len(self.rongnaList))+'/'+str(self.rongliang)
def anzidan(self,zidan):
if len(self.rongnaList) <self.rongliang:
self.rongnaList.append(zidan)
def shezidan(self):
if len(self.rongnaList) >0:
zidan=self.rongnaList[-1]
self.rongnaList.pop()
return zidan
else:
return None
class ZiDan:
def __init__(self,shashangli):
self.shashangli=shashangli
def shanghai(self,diren):
diren.loseBlood(self.shashangli)
humen=Human('wangsir')
danjia=Danjia(20)
print(danjia)
qiang=Qiang()
print(qiang)
i=0
while i<=5:
zidan=ZiDan(5)
humen.anzidan(danjia,zidan)
i+=1
print(danjia)
humen.andanjia(danjia,qiang)
print(qiang)
diren=Human('engemy')
print(diren)
humen.naqiang(qiang)
humen.kaiqiang(diren)
print(diren)
print(danjia)
humen.kaiqiang(diren)
print(diren)
print(danjia)
网友评论