班级管理相关类的实现,射击游戏类的实现
class Student:
def __init__(self,name,age,ID):
self.name = name
self.age = age
self.ID = ID
def eat(self):
return "吃饭"
def sleep(self):
return "睡觉"
def study(self):
return "学习"
def printInfo(self):
print("学生姓名:{}, 年龄:{}, 学号:{}".format(self.name, self.age, self.ID))
print(f"每天需要完成的任务是:{self.eat(), self.sleep(), self.study()}")
class Leader(Student):
def __init__(self,name,age,ID,duty):
super().__init__(name,age,ID)
self.duty = duty
def manage(self):
return "管理"
def printInfo(self):
print("组长姓名:{}, 年龄:{}, 学号:{}".format(self.name, self.age, self.ID))
print(f"每天需要完成的任务是:{self.eat(), self.sleep(), self.study(), self.manage()}")
class Teacher(Leader):
def __init__(self,name,age,duty):
super(Leader,self).__init__(name,age,duty)
self.duty = duty
def teaching(self):
return "教学"
def manage(self):
return "管理"
def printInfo(self):
print("教师姓名:{}, 年龄:{}, 职务:{}".format(self.name, self.age, self.duty))
print(f"每天需要完成的任务是:{self.eat(), self.sleep(), self.teaching(), self.manage()}")
#2. 射击游戏类的实现
class Role: #创建Role类,角色初始血量为100
def __init__(self,name):
self.name = name
self.hp = 100
self.gun = None
def install_bullets(self,clip,bullets): #安装子弹
clip.save_bullets(bullets)
def install_clip(self,gun,clip): #安装弹夹
gun.clip_loads_gun(clip)
def get_gun(self,gun): #持枪
self.gun = gun
def fire(self,enemy): #开枪
self.gun.fire(enemy)
def lose_blood(self,blood): #掉血
self.hp -= blood
def __str__(self):
if self.gun:
return "{}的血量{},拿着{}".format(self.name,self.hp,self.gun)
else:
if self.hp>0:
return "{}的血量{},没有武器!".format(self.name,self.hp)
else:
return f"{self.name}已经挂了!兄dei!"
class Bullets: #创建子弹类
def __init__(self,lethality): #杀伤力:击中一发,血量减5
self.lethality = lethality
def hurt(self,enemy): #杀伤敌人,使敌人掉血
enemy.lose_blood(self.lethality)
class Clip: #创建弹夹类
def __init__(self,capacity):
self.capacity = capacity #弹夹容量
self.surplus_bullets = []
def save_bullets(self,bullets): #安装子弹
if len(self.surplus_bullets) < self.capacity:
self.surplus_bullets.append(bullets)
def __str__(self):
return f"弹夹中的子弹数量为:{len(self.surplus_bullets)}/{self.capacity}"
def lunch_bullets(self): #弹出子弹
if len(self.surplus_bullets) > 0:
bullts = self.surplus_bullets[-1]
self.surplus_bullets.pop()
return bullts
else:
return None
class Gun: #创建枪类
def __init__(self, name):
self.clip = None #默认没有弹夹
self.name = name
def clip_loads_gun(self,clip): #安装弹夹
if not self.clip:
self.clip = clip
def __str__(self):
if self.clip:
return f"武器{self.name},{self.clip}!"
else:
return "枪还没有装弹夹!请装填弹夹!"
def fire(self,enemy): #射出子弹
bullets = self.clip.lunch_bullets()
if bullets:
bullets.hurt(enemy)
else:
print("没有子弹!")
def main(): #创建一个测试函数
soldier = Role("天蓬元帅")
gun = Gun("AK47")
clip = Clip(30) #初始给30发子弹
print(clip)
enemy = Role("白骨精") # 创建一个敌人
print(enemy)
a = int(input("请输入要装填的子弹数量:"))
i = 0
while i < a:
bullets = Bullets(5) #击中一发血量掉5点
soldier.install_bullets(clip,bullets)
i += 1
print(clip)
print(gun)
soldier.install_clip(gun, clip) # 安装弹夹
print("弹夹安装完毕!")
print(gun)
soldier.get_gun(gun)
for j in range(a):
soldier.fire(enemy) # 士兵攻击
print("-----八戒开枪了哦!-----")
print(soldier)
print(enemy)
if __name__ =="__main__":
#1.班级管理相关类的实现
stu1 = Student("黄晓明","21","30641654")
stu1.printInfo()
leader1 = Leader("刘德华","22","9456456","学习委员")
leader1.printInfo()
teacher1 = Teacher("张学友","43","办公室主任")
teacher1.printInfo()
#2. 射击游戏类的实现
print("*"*150)
main()
运行结果