From 516647d93aea0e754163dae9e871b2eff2067c5d Mon Sep 17 00:00:00 2001 From: "patricia.saez" Date: Sat, 14 Oct 2023 17:58:00 +0200 Subject: [PATCH 1/2] commit with 8 errors in war part because war 'War' object has no attribute 'strength' --- vikingsClasses.py | 79 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/vikingsClasses.py b/vikingsClasses.py index b51cd5f..fd019a8 100644 --- a/vikingsClasses.py +++ b/vikingsClasses.py @@ -2,23 +2,86 @@ # Soldier -class Soldier: - pass +class Soldier (): + def __init__(self, health,strength): + self.health = health + self.strength = strength + + def attack (self): + return self.strength + + def receiveDamage (self,damage): + self.health = self.health - damage + + + # Viking -class Viking: - pass +class Viking (Soldier): + def __init__(self, name, health, strength): + super().__init__(health, strength) + self.name = name + + def receiveDamage(self, damage): + self.health -= damage + if self.health > 0: + return f"{self.name} has received {damage} points of damage" + else: + return f"{self.name} has died in act of combat" + + def battleCry (self): + return f"Odin Owns You All!" + # Saxon -class Saxon: - pass +class Saxon(Soldier): + def __init__(self, health, strength): + super().__init__(health, strength) + + def receiveDamage(self, damage): + self.health -= damage + if self.health > 0: + return f"A Saxon has received {damage} points of damage" + else: + return f"A Saxon has died in combat" + # War -class War: - pass +class War(): + 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): + a= Saxon.receiveDamage(Viking.attack(self)) + self.saxonArmy=[i for i in self.saxonArmy if Saxon.health > 0] + return a , Viking.attack(self) + + + def saxonAttack(self): + b = Viking.receiveDamage(Saxon.attack(self)) + self.vikingArmy=[i for i in self.vikingArmy if Viking.health > 0] + return b , Saxon.attack(self) + + 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." + From cc7352f4884639eec4eed96454011b7eef2a225e Mon Sep 17 00:00:00 2001 From: "patricia.saez" Date: Sun, 15 Oct 2023 11:54:59 +0200 Subject: [PATCH 2/2] funcionaaaaagit add vikingsClasses.py git add vikingsClasses.py --- vikingsClasses.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/vikingsClasses.py b/vikingsClasses.py index fd019a8..9edd28a 100644 --- a/vikingsClasses.py +++ b/vikingsClasses.py @@ -52,31 +52,37 @@ def receiveDamage(self, damage): # War - +import random class War(): + import random def __init__(self): self.vikingArmy = [] self.saxonArmy = [] - + - def addViking(self, viking): - self.vikingArmy.append(viking) + def addViking(self, viking_soldier): + self.vikingArmy.append(viking_soldier) - def addSaxon(self,saxon): - self.saxonArmy.append(saxon) - - def vikingAttack(self): - a= Saxon.receiveDamage(Viking.attack(self)) - self.saxonArmy=[i for i in self.saxonArmy if Saxon.health > 0] - return a , Viking.attack(self) + def addSaxon(self,saxon_soldier): + self.saxonArmy.append(saxon_soldier) + def vikingAttack(self): + saxon_soldier = self.saxonArmy[random.randint(0,len(self.saxonArmy)-1)] + viking_soldier = self.vikingArmy[random.randint(0,len(self.vikingArmy)-1)] + if saxon_soldier.health <= viking_soldier.strength: + self.saxonArmy.remove(saxon_soldier) + + return saxon_soldier.receiveDamage(viking_soldier.attack()) def saxonAttack(self): - b = Viking.receiveDamage(Saxon.attack(self)) - self.vikingArmy=[i for i in self.vikingArmy if Viking.health > 0] - return b , Saxon.attack(self) - + saxon_soldier = self.saxonArmy[random.randint(0,len(self.saxonArmy)-1)] + viking_soldier = self.vikingArmy[random.randint(0,len(self.vikingArmy)-1)] + if viking_soldier.health <= saxon_soldier.strength: + self.vikingArmy.remove(viking_soldier) + + return viking_soldier.receiveDamage(saxon_soldier.attack()) + def showStatus(self): if len(self.saxonArmy) == 0: return "Vikings have won the war of the century!"