codewars -The Greatest Warrior

codewars -The Greatest Warrior
代码:

执行报错,不知道还有哪些条件没有写出来, 题目太长看不下去了

class Warrior():
    ex = 100
    rank1 = ["Pushover", "Novice", "Fighter", "Warrior", "Veteran", "Sage", "Elite", "Conqueror", "Champion", "Master", "Greatest"]
    att = []
    def experience(self):
        #print(self.ex)
        return self.ex
    def level(self):
        level = self.ex // 100
        #print(level)
        return level
    def rank(self):
        index = self.ex // 1000
        #print(self.rank1[index])
        return self.rank1[index]
    def achievements(self):
        #print(self.att)
        return self.att
    def training(self, traininglist):
        #print(traininglist[0])
        if self.level()>=traininglist[2]:
            self.ex += traininglist[1]
            if self.ex >10000:
                self.ex = 10000
            self.att.append(traininglist[0])
            return traininglist[0]
        else:
            return "Not strong enough"
    def battle(self,enemylevel):
        if enemylevel < 1 or enemylevel >100:
            return "Invalid level"
        enemylevel_rank = self.rank1[enemylevel // 10]
        #print(enemylevel_rank)
        print(self.rank1.index(enemylevel_rank))
        if self.level() == enemylevel:
            self.ex += 10
            return "A good fight"
        elif self.level() - enemylevel == 1:
            self.ex += 5
            return "A good fight"
        elif self.level() - enemylevel >= 2:
            return "Easy fight"
        elif enemylevel - self.level() > 5 or self.rank1.index(enemylevel_rank) > self.rank1.index(self.rank()):
            return "You've been defeated"
        elif 1< enemylevel - self.level() < 5 :
            self.ex += 20 *(enemylevel - self.level())*(enemylevel - self.level())
            return "An intense fight"
        if self.ex > 10000:
            self.ex = 10000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值