Python:在精灵宝可梦游戏中创建小火龙角色,对给出的个属性进行迭代化和私有化

1.训练要点
(1)掌握游戏角色的数据属性的设置,以及相应类方法的创建。
(2)掌握类和对象的创建,以及对象属性的私有化方法。
(3)掌握迭代函数的使用,让角色在升级时提升各个属性。
2.需求说明
游戏角色的数据属性:名字(name)、性别( gender)、等级( level).能力( status、HP、攻击,防御,特攻,特防、速度、属性(type)。

在能力中,除了HP为level*2+10之外,其他能力均为level+5。
类方法有getName雨数(获取角色的名字,返回类型:str )、getGender 丽数(获取角色的性别,返回类型!:str )、getStatus函数(返回角色的能力,返回类型:list )、

getType函数(返回角色的属性)。
迭代升级变化: level_ up 函数,每升- -级,HP 增加2点,其他属性增加1点。
迭代函数:_ _iter_ 函数, 输出“名字属性性别等级能力”。
逐一访问属性: next 函数,当迭代到最后-一个属性时,返回结果。
3.实训思路及步骤
(1 )创建类Charmander, 设置各个属性。
(2)定义类的方法返回属性值。
(3)根据等级进行迭代,改变相应的属性值。
(4)调用类Charmander,创建对象并命名为pokemonl,访问对象属性,调用iter函数,
输出结果。
____________________________________________________________________________

class Charmander:
    def __init__(self,name,gender,level,type):
        self.name=name
        self.gender=gender
        self.level=level
        self.HP=level*2+10#HP
        self.status=level+5#status
        self.g=level+5#攻击
        self.f = level + 5#防御
        self.t1 = level + 5#特攻
        self.t2=level+5#特防
        self.s=level+5#速度
        self.type=type
        self.N=[self.HP,self.status,self.g,self.f,self.t1,self.t2,self.s]
        self.index=-1
    def getName(self):
        return self.name
    def getGender(self):
        return self.gender
    def getType(self):
        return self.type
    def getstatus(self):
        return self.status
    def level_up(self):
        self.level+=1
        self.HP+=2
        self.status+=1
        self.g+=1
        self.f+=1
        self.t1+=1
        self.t2+=1
        self.s+=1
        self.N=[self.HP,self.status,self.g,self.f,self.t1,self.t2,self.s]
        return self.N
    def __iter__(self):
        print('名字:',self.getName(),end='')
        print('性别:',self.getGender(),end='')
        print('属性:',self.getType(),end='')
        print('等级:',self.level,end='')
        print('能力:',self.N,end='')
        return self
    def next(self):
        if self.index==len(self.N)-1:
            raise StopIteration
        self.index+=1
        self.level_up()
pokemonl = Charmander('小火龙','男',1,'属性')
print('名字:',pokemonl.getName())
print('性别:',pokemonl.getGender())
print('等级:',pokemonl.level)
print('属性:',pokemonl.getType())
print('能力:',pokemonl.N)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C.果栗子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值