'''游戏需求分析:
1.首先创建两个类:玩家类和枪类
2.玩家属性:姓名、血量、是否有枪
3.玩家方法:得到枪、拿枪射击、受伤
4.枪的属性:子弹数量、枪的型号、杀伤力
5.枪的方法:加子弹,开火
'''
# 创建玩家类
class Player(object):
# 初始化玩家信息
def __init__(self,name,hp):
self.name = name
self.hp = hp
self.gun = None
print('%s的血量为:%d,枪为:%s'%(self.name,self.hp,self.gun))
# 玩家方法:拿到枪
def get_gun(self,gun):
self.gun = gun
# 玩家方法:拿枪射击
def shoot(self,enemy):
# self.gun是玩家的属性,同时也是枪的对象
# 在玩家方法里面调用枪的方法fire ******
print('%s射击了%s'%(self.name,enemy.name))
self.gun.fire(enemy)
# 玩家方法:受伤
def hurt(self,damage):
self.hp -= damage
if self.hp > 0:
print('%s受伤,当前血量为%d'%(self.name,self.hp))
# 创建枪类
class Gun(object):
# 初始化枪的属性
def __init__(self,model,bullet_count,damage):
self.model = model
self.bullet_count = bullet_count
self.damage = damage
print('枪的型号为:%s,子弹数量为:%d,杀伤力为:%d'%(self.model,self.bullet_count,self.damage))
# 枪的方法:增加子弹
def add_bullet(self):
self.bullet_count += 4
#枪的方法:开火
def fire(self,enemy):
if self.bullet_count <= 0:
print('没子弹了')
self.add_bullet()
print('加子弹4颗')
self.bullet_count -= 1
# 在枪的方法里调用玩家hurt的方法 *****
enemy.hurt(self.damage)
# 返回枪的描述信息
def __str__(self):
return '枪的型号为:%s,子弹数量为:%d,杀伤力为:%d'%(self.model,self.bullet_count,self.damage)
def main():
# 1.初始化玩家对象
police = Player('警察',100)
tufei = Player('土匪1',100)
# 2.初始化枪的对象
gun1 = Gun('Ak47', 2, 30)
# 3.警察调用拿枪的方法
police.get_gun(gun1)
# 4.police开火射击敌人
while True:
police.shoot(tufei)
if tufei.hp <= 0:
print('土匪挂了')
break
if __name__ == '__main__':
main()