From 0b48c3582d138e4802d604c79b095f888794c5df Mon Sep 17 00:00:00 2001 From: mojeffski Date: Wed, 11 Sep 2024 16:49:37 +0200 Subject: [PATCH] add solution --- __pycache__/vikingsClasses.cpython-311.pyc | Bin 0 -> 6299 bytes file.py | 11 ++++ vikingsClasses.py | 68 ++++++++++++++++----- wargame.py | 17 +++--- 4 files changed, 74 insertions(+), 22 deletions(-) create mode 100644 __pycache__/vikingsClasses.cpython-311.pyc create mode 100644 file.py diff --git a/__pycache__/vikingsClasses.cpython-311.pyc b/__pycache__/vikingsClasses.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2dc77ce3c9f4043aec6cfd6ec29a678a3ff72add GIT binary patch literal 6299 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 literal 0 HcmV?d00001 diff --git a/file.py b/file.py new file mode 100644 index 0000000..dc497b8 --- /dev/null +++ b/file.py @@ -0,0 +1,11 @@ +import vikingsClasses + + +V = vikingsClasses.Viking('Olaf',100,30) +S = vikingsClasses.Saxon(100,30) + +print(S.strength) +print(V.battleCry()) + +def generate_army(number, army_type): + pass \ No newline at end of file diff --git a/vikingsClasses.py b/vikingsClasses.py index c2f31d2..83e078b 100644 --- a/vikingsClasses.py +++ b/vikingsClasses.py @@ -3,15 +3,18 @@ # Soldier -class Soldier: +class Soldier(): def __init__(self, health, strength): # your code here + self.health = health + self.strength = strength def attack(self): # your code here - + return self.strength + def receiveDamage(self, damage): - # your code here + self.health = self.health - damage # Viking @@ -19,65 +22,102 @@ def receiveDamage(self, damage): class Viking(Soldier): def __init__(self, name, health, strength): # your code here + super().__init__(health, strength) + self.name = name def battleCry(self): # your code here + return "Odin Owns You All!" def receiveDamage(self, damage): - # your code here + self.health = 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" # Saxon class Saxon(Soldier): def __init__(self, health, strength): # your code here + super().__init__(health, strength) def receiveDamage(self, damage): - # your code here + self.health = 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" # Davicente class War(): def __init__(self): # your code here + self.vikingArmy = list() + self.saxonArmy = list() def addViking(self, viking): # your code here + self.vikingArmy.append(viking) def addSaxon(self, saxon): # your code here + self.saxonArmy.append(saxon) def vikingAttack(self): # your code here + Saxon_f = random.choice(self.saxonArmy) + Viking_f = random.choice(self.vikingArmy) + result = Saxon_f.receiveDamage(Viking_f.strength) + if Saxon_f.health <=0: + self.saxonArmy.remove(Saxon_f) + return result def saxonAttack(self): # your code here - + Saxon_f = random.choice(self.saxonArmy) + Viking_f = random.choice(self.vikingArmy) + result = Viking_f.receiveDamage(Saxon_f.strength) + if Viking_f.health <=0: + self.vikingArmy.remove(Viking_f) + return result + def showStatus(self): # your code here - pass + if len(self.saxonArmy) >= 1 and len(self.vikingArmy) >= 1: + return "Vikings and Saxons are still in the thick of battle." + elif 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..." + + + #yop + class War2: def __init__(self): # your code here + pass def addViking(self, Viking): # your code here + pass def addSaxon(self, Saxon): # your code here - + pass def vikingAttack(self): # your code here - + pass def saxonAttack(self): # your code here - + pass def showStatus(self): # your code here - - pass - - + pass + pass \ No newline at end of file diff --git a/wargame.py b/wargame.py index 747af67..2c4d356 100644 --- a/wargame.py +++ b/wargame.py @@ -1,25 +1,26 @@ -from .vikingsClasses import Soldier, Viking, Saxon, War +from vikingsClasses import Soldier, Viking, Saxon, War import random soldier_names = ["albert","andres","archie","dani", "david","gerard","german","graham","imanol","laura"] +war_instance = War() #Create 5 Vikings for i in range(0,5): if i: - War.addViking(Viking(soldier_names[random.randint(0,9)],100,random.randint(0,100))) + war_instance.addViking(Viking(soldier_names[random.randint(0,9)],100,random.randint(0,100))) #Create 5 Saxons for i in range(0,5): if i: - War.addSaxon(Saxon(100,random.randint(0,100))) + war_instance.addSaxon(Saxon(100,random.randint(0,100))) round = 0 -while War.showStatus() == "Vikings and Saxons are still in the thick of battle.": - War.vikingAttack() - War.saxonAttack() - print(f"round: {round} // Viking army: {len(War.vikingArmy)} warriors",f"and Saxon army: {len(War.saxonArmy)} warriors") - print(War.showStatus()) +while war_instance.showStatus() == "Vikings and Saxons are still in the thick of battle.": + war_instance.vikingAttack() + war_instance.saxonAttack() + print(f"round: {round} // Viking army: {len(war_instance.vikingArmy)} warriors",f"and Saxon army: {len(war_instance.saxonArmy)} warriors") + print(war_instance.showStatus()) round += 1 \ No newline at end of file