'''
·为帝国创建一支军队,包含骑兵、弓箭手、法师
·所有兵种都能够进攻和防守,但形态各异
·通过输入将令,控制每个兵种的攻守细节
'''
'''
多态:Soldier有多种子类形态
动态绑定:
当进攻时,骑兵步兵弓箭手各自表现出不同的attack()方式,
任意的一个Soldier的实例,能够动态地使用和自己逻辑关系最紧密的attack()方式
'''
class Soldier(object):
def attack(self):
print("士兵进攻")
pass
def defend(self):
print("士兵防守")
pass
class Calvary(Soldier):
def attack(self):
print("用劳资的铁蹄碾压你")
def defend(self):
print("骑兵防守")
class Archer(Soldier):
def attack(self):
print("我的三分剑,是地狱的火焰")
def defend(self):
print("弓箭手防守")
class Master(Soldier):
def attack(self):
print("天灵灵地灵灵云中飞来百万兵 ")
def defend(self):
print("法师防守")
if __name__ == '__main__':
kingsArmy = []
c = Calvary()
a = Archer()
m = Master()
kingsArmy.append(c)
kingsArmy.append(a)
kingsArmy.append(m)
cmd = input("将军请输入传您的将令:")
if cmd == "99":
for s in kingsArmy:
s.attack()
elif cmd == "00":
for s in kingsArmy:
s.defend()
elif cmd == "11":
for s in kingsArmy:
if isinstance(s, Calvary):
s.attack()
else:
s.defend()
else:
print("WHAT THE FUCK")