c课工场 python开发基础,由于做的时候疯狂踩坑就分享一下课本的作业。
1.《绝地求生》是现在非常热门的射击类游戏。根据面向对象的编程思想,模拟实现玩家战斗的场景:
在这个场景中,有玩家、敌人、武器3个对象,3个对象之间的关系如下。
(1)玩家和敌人均属于人类,他们的默认血量是100.
(2)不同武器属于不同的武器类型,杀伤力不同。
(3)不同的武器属于不同的武器类型,杀伤力不同
(4)玩家使用武器击中敌人后,敌人会出现掉血的行为,每次掉血量与武器的杀伤力相同
分析:定义人类(Player)
方法:姓名(name)、血量(blood)、武器(weapon)
定义武器类(Weapon)
变量:武器类型(weapon_type)、杀伤力(lethal)
方法:攻击敌人
class Player():
def __init__(self,name,blood,weapon):
self.name = name
self.blood = blood
self.weapon = weapon
def duixiang(self):
print('创建名为%s的玩家对象' % self.name)
#继承父类
class Weapon2(Player):
def __init__(self,name,blood,weapon,weapon_tybe,lethal):
self.name = name
self.blood = blood
self.weapon = weapon
self.weapon_tybe = weapon_tybe
self.lethal = lethal
def zhuangbei(self):
#装备
print('%s装备了杀伤力为%d点的%s' %(self.name,self.lethal,self.weapon))
def gongji1(self,employ):
#攻击敌人
employ.blood -= self.lethal
print(self.name+'使用'+self.weapon+'攻击'+employ.name+'造成'+str(self.lethal)+'点伤害')
#当血量小于0时死亡
if employ.blood <= 0:
print('%s死亡' % employ.name)
else:
print('%s还剩下%d点血' % (employ.name,employ.blood))
p1 = Weapon2('孙悟空',100,'如意金箍棒','枪支',98)
p2 = Weapon2('白骨精',100,'白骨爪','管制刀具',45)
p1.duixiang()
p2.duixiang()
p1.zhuangbei()
p2.zhuangbei()
# 把值调过去
p2.gongji1(p1)
p1.gongji1(p2)
p1.gongji1(p2)
下面是控制台效果。
创建名为孙悟空的玩家对象
创建名为白骨精的玩家对象
孙悟空装备了杀伤力为98点的如意金箍棒
白骨精装备了杀伤力为45点的白骨爪
白骨精使用白骨爪攻击孙悟空造成45点伤害
孙悟空还剩下55点血
孙悟空使用如意金箍棒攻击白骨精造成98点伤害
白骨精还剩下2点血
孙悟空使用如意金箍棒攻击白骨精造成98点伤害
白骨精死亡
特别注意:类又变成p2的对象
p2.gongji1(p1)
p1.gongji1(p2)
p1.gongji1(p2)
好了,我分享结束了,第一次分享,写的很一般多多包涵,如果有哪里我错误很愚蠢,很简陋的话,一定告诉我。希望我们共同进步。
谢谢观看!祝你们学业进步,身体健康,事业有成,家庭和睦。