diff --git a/vikingsClases.py b/vikingsClases.py index b51cd5f..5d90d0a 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -1,24 +1,72 @@ - +import random # Soldier class Soldier: - pass + def __init__(self, health, strength): + self.health = health + self.strength = strength + def attack(self): + return self.strength + def receiveDamage(self,damage): + self.health -= damage # Viking -class Viking: - pass +class Viking(Soldier): + def __init__(self,name, health, strength): + self.name = name + super().__init__(health,strength) + def receiveDamage(self,damage): + super().receiveDamage(damage) + if self.health > 0: + return self.name+" has received "+str(damage)+" points of damage" + else : + return self.name+" has died in act of combat" + def battleCry(self): + return "Odin Owns You All!" # Saxon - - -class Saxon: - pass - -# War - - +class Saxon(Soldier): + def __init__(self,health,strength): + super().__init__(health,strength) + def receiveDamage(self,damage): + self.health -= damage + if self.health > 0: + return "A Saxon has received "+str(damage)+" points of damage" + else: + return "A Saxon has died in combat" +# War class War: - pass + + def __init__(self): + self.vikingArmy = [] + self.saxonArmy = [] + def addViking(self,viking): + self.vikingArmy.append(viking) + def addSaxon(self,saxon): + self.saxonArmy.append(saxon) + def vikingAttack(self): + viking_attack = random.choice(self.vikingArmy) + strength_viking = viking_attack.attack() + saxon_atacado = random.choice(self.saxonArmy) + saxon_atacado2 = saxon_atacado.receiveDamage(strength_viking) + if saxon_atacado2 == "A Saxon has died in combat" : + self.saxonArmy.remove(saxon_atacado) + return saxon_atacado2 + def saxonAttack(self): + saxon_attack = random.choice(self.saxonArmy) + strength_saxon = saxon_attack.attack() + viking_atacado = random.choice(self.vikingArmy) + viking_atacado2 = viking_atacado.receiveDamage(strength_saxon) + if viking_atacado.health <= 0 : + self.vikingArmy.remove(viking_atacado) + return viking_atacado2 + def showStatus(self): + if len(self.saxonArmy) == 0: + return "Vikings have won the war of the century!" + elif len(self.vikingArmy) == 0: + return "Saxons have fought for their lives and survive another day..." + else: + return "Vikings and Saxons are still in the thick of battle." diff --git a/vikingswar.py b/vikingswar.py new file mode 100644 index 0000000..9755dc4 --- /dev/null +++ b/vikingswar.py @@ -0,0 +1,39 @@ +import random +from vikingsClases import War +from vikingsClases import Viking +from vikingsClases import Saxon +#create your army vikingos & saxons +def CreateArmy(): + while True: + try: + length_vikings = int(input("Introduce length of vikings army:")) + length_saxon = int(input("Introduce length of saxon army:")) + return length_vikings, length_saxon + except ValueError: + print("That's not a number") +len_vikings, len_saxon = CreateArmy() +war = War() +def CreateArmyVikings(): + y = [Viking(random.sample(['Harald','Einar','Ragnar','Astrid','Erika'],1)[0],random.randint(50,100),random.randint(50,100)) for i in range(len_vikings)] + [war.addViking(i) for i in y] + +def CreateArmySaxons(): + x = [Saxon(random.randint(50,100),random.randint(50,100)) for i in range(len_saxon)] + [war.addSaxon(e) for e in x] + +#Battle +def Battle(): + CreateArmySaxons() + CreateArmyVikings() + while len(war.vikingArmy)!= 0 and len(war.saxonArmy)!=0 : + if random.sample(["S","V"],1)[0] == "S": + print(war.saxonAttack()) + if len(war.vikingArmy)!= 0 : + print(war.vikingAttack()) + else: + print(war.vikingAttack()) + if len(war.saxonArmy)!= 0 : + print(war.saxonAttack()) + print(war.showStatus()) + +Battle() \ No newline at end of file