From 006ccb7c4a3d48eba0f04b8960c7d845f6f906d4 Mon Sep 17 00:00:00 2001 From: Amir Golafshan Date: Fri, 13 Oct 2023 17:56:51 +0200 Subject: [PATCH] Battle for Valhalla has been created successfully. Battle of our class is missing (Bonus). --- __pycache__/vikingsClasses.cpython-311.pyc | Bin 0 -> 6157 bytes vikingsClasses.py | 92 +++++++++++++++++++-- 2 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 __pycache__/vikingsClasses.cpython-311.pyc diff --git a/__pycache__/vikingsClasses.cpython-311.pyc b/__pycache__/vikingsClasses.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..65efd2768087a6328862ae98481bf33df72710a6 GIT binary patch literal 6157 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 YZE;9IsduOO!F!!=Sliq8^kCBd7rkq(kN^Mx literal 0 HcmV?d00001 diff --git a/vikingsClasses.py b/vikingsClasses.py index b51cd5f..56e9ecd 100644 --- a/vikingsClasses.py +++ b/vikingsClasses.py @@ -3,22 +3,102 @@ class Soldier: - pass + def __init__(self, health, strength): + self.health = health + self.strength = strength + + #attack of soldier + def attack(self): + return self.strength + + #Damage received (health -= damage) + def receiveDamage(self, damage): + self.health -= damage + # Viking -class Viking: - pass +class Viking(Soldier): + def __init__(self, name, health, strength): + super().__init__(health, strength) + self.name = name + + def attack(self): + return super().attack() + + 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 "Odin Owns You All!" # Saxon -class Saxon: +class Saxon(Soldier): + def __init__(self, health, strength): + super().__init__(health, strength) + + def attack(self): + return super().attack() + + 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" pass # War +import random +class War(Saxon, Viking): + + def __init__(self): + self.vikingArmy = [] + self.saxonArmy = [] -class War: - pass + def addViking(self, viking: Viking): + self.vikingArmy.append(viking) + + def addSaxon(self, saxon: Saxon): + self.saxonArmy.append(saxon) + + def vikingAttack(self): + randomindex_saxon = random.randint(0, len(self.saxonArmy)-1) + saxon: Saxon = self.saxonArmy[randomindex_saxon] + randomindex_viking = random.randint(0,len(self.vikingArmy)-1) + viking: Viking = self.vikingArmy[randomindex_viking] + attack = saxon.receiveDamage(viking.strength) + if saxon.health <= 0: + # self.saxonArmy.append(saxon) + self.saxonArmy.pop(randomindex_saxon) + + return attack + + def saxonAttack(self): + randomindex_viking = random.randint(0, len(self.vikingArmy)-1) + viking: Viking = self.vikingArmy[randomindex_viking] + + randomindex_saxon = random.randint(0,len(self.saxonArmy)-1) + saxon: Saxon = self.saxonArmy[randomindex_saxon] + attack = viking.receiveDamage(saxon.strength) + if viking.health <= 0: + #self.vikingArmy.append(viking) + self.vikingArmy.pop(randomindex_viking) + return attack + + def showStatus(self): + if len(self.saxonArmy and 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!" + else: + return "Saxons have fought for their lives and survive another day..." +