From 820407004bed778f461be4b3316516574d3e8366 Mon Sep 17 00:00:00 2001 From: IvanDGregor Date: Sun, 19 Jan 2020 23:28:41 +0100 Subject: [PATCH 1/2] Soldier, Viking and Saxon Done --- vikingsClases.py | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/vikingsClases.py b/vikingsClases.py index b51cd5f..d6f9c39 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -1,24 +1,51 @@ - # Soldier - class Soldier: - pass + def __init__(self, health, strength): + self.health = health + self.strength = strength -# Viking + def attack(self): + return self.strength + def receiveDamage(self, damage): + self.health -= damage -class Viking: - pass +# Viking + +class Viking(Soldier): + def __init__(self, name, health, strength): + Soldier.__init__(self, health, strength) + self.name = name + def attack(self): + return self.strength + def receiveDamage(self, damage): + self.health -= 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(Soldier): + def __init__(self, health, strength): + Soldier.__init__(self, health, strength) -class Saxon: - pass + def attack(self): + return self.strength -# War + 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 + pass \ No newline at end of file From 7d6ca951884d29366786562ef4d1f413076894e2 Mon Sep 17 00:00:00 2001 From: IvanDGregor Date: Sun, 19 Jan 2020 23:51:27 +0100 Subject: [PATCH 2/2] Bonus Done --- vikingsClases.py | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/vikingsClases.py b/vikingsClases.py index d6f9c39..0edc4be 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -17,14 +17,13 @@ class Viking(Soldier): def __init__(self, name, health, strength): Soldier.__init__(self, health, strength) self.name = name - def attack(self): - return self.strength + def receiveDamage(self, damage): self.health -= damage if(self.health > 0): - return self.name + " has received " + str(damage) + " points of damage" + return f"{self.name} has received {damage} points of damage" else: - return self.name + " has died in act of combat" + return f"{self.name} has died in act of combat" def battleCry(self): return "Odin Owns You All!" @@ -35,17 +34,47 @@ class Saxon(Soldier): def __init__(self, health, strength): Soldier.__init__(self, health, strength) - def attack(self): - return self.strength - def receiveDamage(self, damage): self.health -= damage if(self.health > 0): - return "A Saxon has received " + str(damage) + " points of damage" + return f"A Saxon has received {damage} points of damage" else: return "A Saxon has died in combat" # War class War: - pass \ No newline at end of file + 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): + import random + randomSaxon = random.choice(self.saxonArmy) + randomViking = random.choice(self.vikingArmy) + damage = randomSaxon.receiveDamage(randomViking.strength) + if randomSaxon.health <= 0: + self.saxonArmy.remove(randomSaxon) + return damage + + def saxonAttack(self): + import random + randomSaxon = random.choice(self.saxonArmy) + randomViking = random.choice(self.vikingArmy) + damage = randomViking.receiveDamage(randomSaxon.strength) + if randomViking.health <= 0: + self.vikingArmy.remove(randomViking) + return damage + + def showStatus(self): + if not self.saxonArmy: + return "Vikings have won the war of the century!" + elif not self.vikingArmy: + return "Saxons have fought for their lives and survive another day..." + else: + return "Vikings and Saxons are still in the thick of battle." \ No newline at end of file