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