From 0387994ce77b0854181ce7c17a25d44ece7c00bc Mon Sep 17 00:00:00 2001 From: vagabundoo Date: Fri, 17 Jan 2020 15:58:58 +0100 Subject: [PATCH 1/5] started lab --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1cbca72..38b94e5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Lab | Vikings (lab-data-vikings) + ## Introduction The Vikings and the Saxons are at War. Both are Soldiers but they have their own methods to fight. Vikings are ported to Python. YAY!! From 2070f8e7163ab929a4829c297382cc3d8b6df485 Mon Sep 17 00:00:00 2001 From: vagabundoo Date: Fri, 17 Jan 2020 17:43:42 +0100 Subject: [PATCH 2/5] soldier + viking done --- vikingsClases.py | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/vikingsClases.py b/vikingsClases.py index b51cd5f..1a0aeb5 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -3,13 +3,40 @@ 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 -= damage + + # Viking -class Viking: - pass +class Viking(Soldier): + def __init__(self, name, health, strength): + super().__init__(health, strength) + self.name = name + + #def attack(self): + # super().attack() + + def receiveDamage(self, damage): + super().receiveDamage(damage) + if self.health > 0: + return "".join([self.name," has received ",str(damage)," points of damage"]) + else: + return "".join([self.name," has died in act of combat"]) + + def battleCry(self): + return 'Odin Owns You All!' + + # Saxon From 932791dffe8ccf37c5d5a4a53026cb17c45e499a Mon Sep 17 00:00:00 2001 From: vagabundoo Date: Fri, 17 Jan 2020 18:02:59 +0100 Subject: [PATCH 3/5] mandatory exercises done --- vikingsClases.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/vikingsClases.py b/vikingsClases.py index 1a0aeb5..2c59fe1 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -37,15 +37,37 @@ def battleCry(self): return 'Odin Owns You All!' - # Saxon -class Saxon: +class Saxon(Soldier): + def __init__(self, health, strength): + super().__init__(health, strength) + + def receiveDamage(self, damage): + super().receiveDamage(damage) + if self.health > 0: + return "".join(["A Saxon has received ",str(damage)," points of damage"]) + else: + return "A Saxon has died in combat" + pass # War class War: + def __init__(self): + self.vikingArmy = [] + self.saxonArmy = [] + + def addViking(Viking): + self.vikingArmy.append(Viking) + + def addSaxon(Saxon): + self.saxonArmy.append(Saxon) + + def vikingAttack() + def saxonAttack() + def showStatus() pass From d772c74a180efa14c04637646e25529c9c806b4c Mon Sep 17 00:00:00 2001 From: vagabundoo Date: Sat, 18 Jan 2020 22:36:44 +0100 Subject: [PATCH 4/5] progress on war --- battle.py | 1 + vikingsClases.py | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 battle.py diff --git a/battle.py b/battle.py new file mode 100644 index 0000000..393c3ce --- /dev/null +++ b/battle.py @@ -0,0 +1 @@ +# Hacer una batalla entre vikingos: un projecto bonito. \ No newline at end of file diff --git a/vikingsClases.py b/vikingsClases.py index 2c59fe1..6b2e04e 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -55,19 +55,33 @@ def receiveDamage(self, damage): # War +import random class War: def __init__(self): self.vikingArmy = [] self.saxonArmy = [] - def addViking(Viking): + def addViking(self, Viking): self.vikingArmy.append(Viking) - def addSaxon(Saxon): + def addSaxon(self, Saxon): self.saxonArmy.append(Saxon) + + def vikingAttack(self): + vikingAttacker = random.choice(self.vikingArmy) + dmg = vikingAttacker.attack() + saxonVictim = random.choice(self.saxonArmy) + saxonVictim.receiveDamage(dmg) - def vikingAttack() - def saxonAttack() - def showStatus() + #victimIndex = random.randint(0,sum(len(self.vikingArmy),-1)) + #result = self.saxonArmy[victimIndex].receiveDamage(dmg) + #if result == "A Saxon has died in combat": + #saxonArmy.remove(saxonArmy[victimIndex]) + #return result + pass + def saxonAttack(self): + pass + def showStatus(self): + pass pass From ee4459f3ad2568515142d3534ce6d96dce534009 Mon Sep 17 00:00:00 2001 From: vagabundoo Date: Mon, 20 Jan 2020 10:21:37 +0100 Subject: [PATCH 5/5] war completed. what is it good for tho? --- vikingsClases.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/vikingsClases.py b/vikingsClases.py index 6b2e04e..7829cd8 100644 --- a/vikingsClases.py +++ b/vikingsClases.py @@ -72,7 +72,10 @@ def vikingAttack(self): vikingAttacker = random.choice(self.vikingArmy) dmg = vikingAttacker.attack() saxonVictim = random.choice(self.saxonArmy) - saxonVictim.receiveDamage(dmg) + result = saxonVictim.receiveDamage(dmg) + if saxonVictim.health <= 0: + self.saxonArmy.remove(saxonVictim) + return result #victimIndex = random.randint(0,sum(len(self.vikingArmy),-1)) #result = self.saxonArmy[victimIndex].receiveDamage(dmg) @@ -81,7 +84,17 @@ def vikingAttack(self): #return result pass def saxonAttack(self): + saxonAttacker = random.choice(self.saxonArmy) + dmg = saxonAttacker.attack() + vikingVictim = random.choice(self.vikingArmy) + result = vikingVictim.receiveDamage(dmg) + if vikingVictim.health <= 0: + self.vikingArmy.remove(vikingVictim) + return result + pass def showStatus(self): - pass - pass + if self.saxonArmy == []: return "Vikings have won the war of the century!" + elif self.vikingArmy == []: return "Saxons have fought for their lives and survive another day..." + return "Vikings and Saxons are still in the thick of battle." +