From 40a6c3ea9a876681db13f20ca2e59cf9470f9e21 Mon Sep 17 00:00:00 2001 From: Maira Gutierrez Date: Mon, 16 Oct 2023 09:18:04 +0200 Subject: [PATCH] Task completed minus bonus --- 1-testsSoldier.py | 2 +- __pycache__/vikingsClasses.cpython-311.pyc | Bin 0 -> 5629 bytes vikingsClasses.py | 113 +++++++++++++++++++-- 3 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 __pycache__/vikingsClasses.cpython-311.pyc diff --git a/1-testsSoldier.py b/1-testsSoldier.py index ab6095a..d5ff3db 100644 --- a/1-testsSoldier.py +++ b/1-testsSoldier.py @@ -45,4 +45,4 @@ def testCanReceiveDamage(self): if __name__ == '__main__': - unittest.main() + unittest.main() \ No newline at end of file diff --git a/__pycache__/vikingsClasses.cpython-311.pyc b/__pycache__/vikingsClasses.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a8969a7ff2749690a2223386b4ae109e909e086b GIT binary patch literal 5629 zcmeHLOK%(36~4olhT_wvsLGP8jGh+lR#a*`R{e}>#fe*6ZX&cnwJ1B`j6_-^Qn@pf zBZ4Y~HbB`xi!NNqKplW9*MhUi&&ZM_2uK*ffPf;4?r6x1!mFNh=fRicItIGy4EfD{ z-*eCX&Y5%PAAvwOf$Q;~Vsf94kbh#vy4+^sFb|0x;vgRqiF`>U?umntXYebJ=8WRnBN?{5H*IQetu?erNXQ3vosK>?iB#m2_rVjhoM#im0lxI<>Z; z^NB<{lhzW6eAryflvTne?SVkdO=hZM+t zcpBFNp}65OjxA)DqdeqP>>yAtpzaYh4Ft{yEg6iwADbbGK!Q+Yd$Y_BQeYBE+5~}& zt?x0&w9Z@L^3c0k|EO_G7SwFa!DP`rlDH}^%PI~gm_h}poRrh+@*JzmM=jY}ibK#r zwUpHVaHVvs(t8$lRfL-fJ0J6)mNVk2oJi>1iNtDF$|;!kCla6MM8&9~xK0{GI03Lr zSZAglifUzmT2yBNw(Ps^a=3@<#D;FpeY#F;@Nn*Pm~97RbR0MdfBUi&dpHF}e{QmY zB3a_V4){eUOF1BA+Cq_h!7X~g9$dQTH;iXVmpvXKm}azChs58w9ilan<_VNNvm2M1 zYV1M+CgW_iU5+rLvSh^;B!P3VtKfv3EkR?$-MU-Nt%0qeqIDN)y`BiFJ0SRdwgG&?|al+;wyZt z#>dKhY`>=u2;%LusZMU&%KHiieJka0Pe7^9Y{i1=$bDOJ61Tz>MFUW3EAa0`auhf~ z=hxuo+G<>1JJ9vb{|f{n`Jj*zRlzg}NqBWaSj(ot1qs2` zm&~qyCTcMkMU64O8%js@?>ddGKsQ1M08GbcDjtm^-(xDi#S{f>`zwHE?Vqmlryng< z`0*M)UgpOSe4*_tk4}7bqj+P#xBp?f9Qg=-PuGnnqW_}lUCyBEYS zvYD25t!*DE80zipqu}@<&ZXf_OztwTZNH;|(YSLB4`S>BirMBmf^0Fi=Xe)dsBwU1 z?sj;NgO1m5r^`TEGHNQ2csrH6k<0MdPQtlBjCg3Co`yN|(OH2luGKftA*}0fuCtti z=?$Fi-rybRafIEdq3v6 z@_v}prvC>pjTJ@pW2hP0KQ#c4U=i-uaQre8uQ}8_CWh#E4K@tfLC?V`5Q46)$r;HE z2$`d7i3Yu*BpI$cA3)LV>}`}C$qoLR_iu;x_@OF4^k}`pPt^E{vi19)uj0ob0>!Y+ zS_0CgWeGgU%xuR{zLmR!?HUUR?(xiU)|LkO6XcUuGX+}(^=q3?v6%K0D&b)-iVGiT?OtwI&*eG zbi`Im`ixX z)$F=#2Bo^+=#pR-r3cKMVQUn_BK4Ej!MNyp zopgKqpAQT_zV@`|o1x0UOl@GMc<1@x$m6?D$G(YI1~1nJFBk6~L`U|bv1&9{iJq%P z&lPX&M~C;K@oF^wt)~*bREu6J-Z}^k)IuXAu^Kv44xQN#_dE>lg~zMm@sd&rpRa|_ zm&4}|BBzRX;apeL{!cB~1VVl&wdi^11iV83MK2&+L|~4xR9IDd^fW3%B>Hn*J8grzLSMrkT2@aaJnz*z`tj;=!n(pjjYaI)H%nwrXAuqMJb z=1?M)1yxHc3Lds_GA)%(uHekZ`C 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: - pass +class Saxon(Soldier): + + def __init__(self, health, strength): + super().__init__(health,strength) + + self.health = health + self.strength = strength + + def receiveDamage(self, damage): + super().receiveDamage(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 +import random 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): + + if self.saxonArmy: + random_saxon = random.choice(self.saxonArmy) + random_viking = random.choice(self.vikingArmy) + + damage = random_viking.attack() + result = random_saxon.receiveDamage(damage) + + if random_saxon.health <= 0: + self.saxonArmy.remove(random_saxon) + + return result + return None + + def saxonAttack(self): + + if self.vikingArmy: + + random_viking = random.choice(self.vikingArmy) + random_saxon = random.choice(self.saxonArmy) + + damage = random_saxon.attack() + result = random_viking.receiveDamage(damage) + + if random_viking.health <= 0: + self.vikingArmy.remove(random_viking) + + return result + return None + + + + 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." + + + + \ No newline at end of file