From ca5f0fad948f84c41b7b02b86afc1b8d549d8532 Mon Sep 17 00:00:00 2001 From: foscanit Date: Fri, 13 Oct 2023 18:54:55 +0200 Subject: [PATCH] =?UTF-8?q?[Cl=C3=A0udia=20Pintos]lab-vikings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/vikingsClasses.cpython-311.pyc | Bin 0 -> 5390 bytes vikingsClasses.py | 85 +++++++++++++++++++-- 2 files changed, 79 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..9b3a9243ecdcfeb0af3dbb2b570bdcb0dc8bb2d7 GIT binary patch literal 5390 zcmd^DO>7&-6`o!GXelm5sgzYqk<_KEI;2vGu|TA#ew@fsZP`twBuX1phY)M-TB1ae z%Is3E2&K>=2cpoSC=AFz5r8NXSAs7&G(ZnM^jM%5k|01~0RsYh%8iD7GEkuJ%`R75 zQgWUCoI1OFJ2P*7-n{wVn>YMJAkax5{UaAupZEy*I~E$rV`ZM@A#+F+qHt-l%JJkD zQTWe@;(Ejr@)&+*TICtX4IGckKXL&NeiqNgcwXRjwDH`GCjigaGNMP}R!Fq-8ysXQ zX^q7`oK<)xLFSOCAeTZ`d4>Coth!LTRkz{->QUSPW;5$@ax->gdHKWnxu3oldw1@}N-Qnk9p6c9 zrZQ_<%=*r!WldAHiS1oONF-93l%7cByREfMG-^6<&R!t<EFc6b_Lyg~7+yu*lGjuX2a_zJ z0#r?^sU3BJvGSK1vN@_z99u~P4>pT8%Y9?0s{%Ys*rli!wVaW+)I`GQOeD6lN-m9g zF_HKrC#Ovg4ZujW2T320W5PN!^-wp~B0()`b3pd(r_S@9kvg%7z+1keA?p&jp)fZ>GIDQNTWGt^;c@X?}n;0l%Y2sf;8ib>tA2cQK-AJXg~e6Th>t7o9SoAh+RJk$;)Z{3oXib9NM6IYmd>I77@Oqe8&v;vBZU`~X`yz5dG#1viy# z>`lo0TZZDbO~bW9%yZQ;g-df1lg()nRDzlE1I@gKDVR1uL(qVp5B`w3SO@meO=*)r zUWWb9!qHo$(1P`f3#Xx2DHOAi=D8SYEg(azQY3GjO}Y;gry;s9+iKIMyB1+i8+$XT6bpL;7;ywo`d@<&i#XV_9Vfqyy(uPMvl}kj zf&t4;d)y|>?oJ#_As z!ecDwjO5X)o9R;sGB(_e(ksqnxBpf%!9l*!xWkY=zKADUTY3aFkL}t`rXf1eyt-o3 zs_ljlEIDQ2pr(jtTU&aynVqA-Wy59q)^AXvV;@DB7(7*s4k~BhEY=NITFo$1Farq; zNDVJlx3W8`8JM~(%P{eT-3-5FC0KBrFotNk0yDhtMpJ37!9zp)JrJ;#OZ^W%{_@5b zcaA>!I`q|tfBd+7ZJ~N?;Vqq`tWU3OGDo19jk(qLEwi=u*3A6v7Q0JSV&V5U$+varv z)Oja30qXn(P=BSFouk1uFAlh(Zy}jRn4$M+Tonwzc`TW*3?eL>D&E89MIireRG#_) zlS9RUT6nS&o-Bvs)o>FgmuuokMI0$km&I6BjFrULX>gzxj8uY=qk&pp=F&6Mt7hKloMIKV0<>7sD0*m6HF;Nockdntc-J{!QhLVFAN?HW|6lnef0R9w+;(f&;Ucqy{PHfWKfkm72dOdfzIys-Rl`tvbUk)$& z|Lhk1Axh>(!tPX~m}Am9SMWlZG5-p=P8XmFf>Zk&kh+WGxVk{N-VzC!Z{6+VU;*vq zDb_tdV@N>`E@ADY@X=GOeSXFo>*OG?ZYPCXPqFs-8B6*;hYC2KK4taKFW@ru{1Y^n B9J~Mk literal 0 HcmV?d00001 diff --git a/vikingsClasses.py b/vikingsClasses.py index b51cd5f..87f212d 100644 --- a/vikingsClasses.py +++ b/vikingsClasses.py @@ -1,24 +1,97 @@ # Soldier +import random as rd class Soldier: - pass + 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): + self.name = name + self.health = health + self.strength = strength + + + def receiveDamage(self, damage): + 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" + + def battleCry(self): + return "Odin Owns You All!" + # Saxon -class Saxon: - pass +class Saxon(Soldier): + def __init__ (self, health, strength): + self.health = health + self.strength = strength + + def receiveDamage(self, damage): + self.health = self.health - damage + if self.health > 0: + return f"A Saxon has received {damage} points of damage" + else: + return "A Saxon has died in combat" + # War class War: - pass + def __init__ (self): + self.vikingArmy = [] + self.saxonArmy = [] + + def addViking(self, Viking_obj): + self.vikingArmy.append(Viking_obj) + + def addSaxon(self, Saxon_obj): + self.saxonArmy.append(Saxon_obj) + + def vikingAttack(self): + Saxon_rand = self.saxonArmy[rd.randint(0,len(self.saxonArmy)-1)] + Viking_rand = self.vikingArmy[rd.randint(0, len(self.vikingArmy)-1)] + + + if Saxon_rand.health <= Viking_rand.attack(): + self.saxonArmy.remove(Saxon_rand) + + return Saxon_rand.receiveDamage(Viking_rand.attack()) + + def saxonAttack(self): + Saxon_rand = self.saxonArmy[rd.randint(0,len(self.saxonArmy)-1)] + Viking_rand = self.vikingArmy[rd.randint(0, len(self.vikingArmy)-1)] + + if Viking_rand.health <= Saxon_rand.attack(): + self.vikingArmy.remove(Viking_rand) + + return Viking_rand.receiveDamage(Saxon_rand.attack()) + + + 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." +