Assertion Errorが出る
Chechioの「Army Battle」という課題で,Assertion Errorが出てしまいます.
turnのカウントによる勝利条件の設定などで間違えているのでしょうか.
よろしくお願いします.
該当のソースコード(Python3)
python
1class Warrior: 2 health = 50 3 attack = 5 4 is_alive = True 5 6 7class Knight(Warrior): 8 attack = 7 9 10 11class Army: 12 def __init__(self): 13 self.armies = [] 14 15 def add_units(self, warrior, war_num): 16 for n in range(war_num): 17 self.armies.append(warrior()) 18 19 20class Battle: 21 def fight(self, army_1, army_2): 22 turn = 0 23 num_1 = 0 24 num_2 = 0 25 26 while num_1 < len(army_1.armies) and num_2 < len(army_2.armies): 27 while (army_1.armies[num_1].health > 0 28 and army_2.armies[num_2].health > 0): 29 30 if turn % 2 == 0: 31 army_2.armies[num_2].health -= army_1.armies[num_1].attack 32 else: 33 army_1.armies[num_1].health -= army_2.armies[num_2].attack 34 35 turn += 1 36 37 if turn % 2 == 0: 38 army_1.armies[num_1].is_alive = False 39 num_1 += 1 40 else: 41 army_2.armies[num_2].is_alive = False 42 num_2 += 1 43 44 turn -= 1 45 46 if turn % 2 == 0: 47 return True 48 else: 49 return False 50 51 52if __name__ == '__main__': 53 54 army_1 = Army() 55 army_2 = Army() 56 army_1.add_units(Warrior, 20) 57 army_2.add_units(Warrior, 21) 58 battle = Battle() 59 assert battle.fight(army_1, army_2) is True 60
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/22 05:34