老王开枪
大体框架
故事:老王看隔壁老宋不爽,准备拿枪干掉隔壁老宋,首先把子弹安装到弹夹中,然后再把安装好子弹的弹夹装到AK47上面,然后拿起AK47瞄准隔壁老宋一阵狂扫...
- 创建”老王“对象
- 创建”AK47“对象
- 创建”弹夹“对象
- 创建”子弹“对象,”老王“把”子弹“安装到”弹夹“中
- ”老王“把装有”子弹“的弹夹安装到”AK47“中
- ”老王“拿起”AK47“
- 创建”隔壁老宋“对象(敌人)
- ”老王“对准”隔壁老宋“开枪
python实现代码
#!/usr/bin/env python3
# coding=utf-8
class Person(object):
"""人的类"""
def __init__(self, temp_name):
super(Person, self).__init__()
self.name = temp_name
self.HP = 100
self.gun = None
def install_bullet(self, temp_clip, temp_bullet):
#安装子弹到弹夹
temp_clip.upper_bullet(temp_bullet)
def install_clip(self, temp_gun, temp_clip):
#安装弹夹到枪中
temp_gun.add_clip(temp_clip)
def take_gun(self, temp_gun):
#拿起枪
self.gun = temp_gun
def shoot(self, temp_enemy):
#射击(枪开火)
if self.gun:
self.gun.fire(temp_enemy)
else:
print("{}没有枪".format(self.name))
def loss_HP(self, temp_power):
#掉血(被子弹击中,掉血根据子弹威力算)
self.HP -= temp_power
if self.HP <= 0:
print("{}已挂".format(self.name))
self.HP = 0
def __str__(self):
return "{}\nHP:{}/100\nGun:{}".format(self.name, self.HP, self.gun)
class Gun(object):
"""枪的类"""
def __init__(self, temp_name):
self.name = temp_name
self.clip = None
def add_clip(self, temp_clip):
#添加弹夹到枪中
self.clip = temp_clip
def fire(self, temp_enemy):
#开火(从弹夹中弹出一颗子弹)
temp_bullet = self.clip.pop_bullet()
if temp_bullet:
temp_bullet.hit(temp_enemy)
else:
print("没子弹了")
def __str__(self):
return "{} {}".format(self.name, self.clip)
class Clip(object):
"""弹夹的类"""
def __init__(self):
super(Clip, self).__init__()
self.max_bullet = 20
self.bullet_list = []
def upper_bullet(self, temp_bullet):
#安装子弹
if len(self.bullet_list) < self.max_bullet:
self.bullet_list.append(temp_bullet)
else:
print("弹夹已满")
def pop_bullet(self):
#弹出子弹
if self.bullet_list:
return self.bullet_list.pop()
else:
return None
def __str__(self):
return "子弹:{}/{}".format(len(self.bullet_list), self.max_bullet)
class Bullet(object):
"""子弹的类"""
def __init__(self, temp_power):
super(Bullet, self).__init__()
self.power = temp_power
def hit(self, temp_enemy):
#子弹击中敌人,使敌人掉血
temp_enemy.loss_HP(self.power)
def main():
#1.创建老王对象
lao_wang = Person("老王")
#2.创建一把枪对象
ak47 = Gun("AK47")
#3.创建一个弹夹对象
clip = Clip()
#4.创建一些子弹并把子弹安装到弹夹中
for i in range(22):
bullet = Bullet(10)
lao_wang.install_bullet(clip, bullet)
#5.把弹夹安装到抢里面
lao_wang.install_clip(ak47, clip)
#6.老子拿起抢
lao_wang.take_gun(ak47)
#7.创建敌人对象
gebi_laosong = Person("隔壁老宋")
#9.老王开枪射击隔壁老宋
for i in range(14):
lao_wang.shoot(gebi_laosong)
print(lao_wang)
print(gebi_laosong)
if __name__ == "__main__":
main()