Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 161 additions & 6 deletions vikingsClases.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,179 @@

import random

# Soldier


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):

return self.strength

def receiveDamage(self, damage):

self.health -= damage

return ("%s has received %s points of damage" % (self.name, damage) if self.health > 0 else "%s has died in act of combat" % (self.name))

def battleCry(self):

return "Odin Owns You All!"


# Saxon

class Saxon(Soldier):

def __init__(self, health, strength):

super().__init__(health, strength)

def attack(self):

return self.strength

def receiveDamage(self, damage):

super().receiveDamage(damage)

return ("A Saxon has received %s points of damage" % (damage) if self.health > 0 else "A Saxon has died in combat")

class Saxon:
pass

# War


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 saxonAttack(self):

Vikingo = self.vikingArmy[random.randint(0, len(self.vikingArmy)-1)]

Sajon = self.saxonArmy[random.randint(0, len(self.saxonArmy)-1)]

Battle = Vikingo.receiveDamage(Sajon.attack())

if Vikingo.health <= 0:

self.vikingArmy.remove(Vikingo)

return Battle

def vikingAttack(self):

Vikingo = self.vikingArmy[random.randint(0, len(self.vikingArmy)-1)]

Sajon = self.saxonArmy[random.randint(0, len(self.saxonArmy)-1)]

Battle = Sajon.receiveDamage(Vikingo.attack())

if Sajon.health <= 0:

self.saxonArmy.remove(Sajon)



return Battle

def showStatus(self):

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..."

else:
return "Vikings and Saxons are still in the thick of battle."


def Viking_generator():

name_viking = "".join([chr(random.randint(97, 122)) for e in range(5)])

health_viking = random.randint(0, 900)

strength_viking = random.randint(0, 450)

Viking_generated = Viking(name_viking, health_viking, strength_viking)

return Viking_generated


def Saxon_generator():

health_saxon = random.randint(0, 900)

strength_saxon = random.randint(0, 450)

Saxon_generated = Saxon(health_saxon, strength_saxon)

return Saxon_generated


def battle(size):

IronWar = War()

for e in range(size):

IronWar.addViking(Viking_generator())

for e in range(size):

IronWar.addSaxon(Saxon_generator())

while IronWar.vikingArmy and IronWar.saxonArmy:

print(IronWar.saxonAttack())

if IronWar.vikingArmy and IronWar.saxonArmy:

print(IronWar.vikingAttack())

print(IronWar.showStatus())


print(battle(6))