--- extends: base.j2 title_ending: "| About" default_block: content --- About ===== [TOC] # Python Code ## baseAlien.py {% syntax python %} types = ( ("Blob", "Blue Blob"), ("Blob", "Red Blob"), ("Blob", "Green Blob"), ("Blob", "White Blob"), ("Blob", "Rainbow Blob"), ("Jelly", "Messy Jelly"), ("Jelly", "Moulded Jelly"), ("Jelly", "Trifle Jelly"), ("Slime", "Sticky Slime"), ("Slime", "Camouflage Slime"), ("Elemental"), ("Polyhedron"), ) class BaseAlien(object): def __init__(self, genus, species): self.genus = genus self.species = species self.age = 0 self.maxAge = eval(self.species.upper().replace(" ", "") + "_MAX_AGE") self.disease = "none" self.health = 100 def canBreed(self, otherAlien): if isinstance(otherAlien, self.__class__): return True else: return False def __str__(self): return "%s : %s : %s" % (self.genus, self.species) #=============================================================================== # GENUS #=============================================================================== class Blob(BaseAlien): species = set() def __init__(self, species): super(Blob, self).__init__("Blob", species) class Jelly(BaseAlien): species = set() def __init__(self, species): super(Jelly, self).__init__("Jelly", species) class Slime(BaseAlien): species = set() def __init__(self, species): super(Slime, self).__init__("Slime", species) #=============================================================================== # SPECIES #=============================================================================== #--- BLOBS --- class RedBlob(Blob): def __init__(self): super(RedBlob, self).__init__("Red Blob") Blob.species.add(self.__class__) class BlueBlob(Blob): def __init__(self): super(BlueBlob, self).__init__("Blue Blob") Blob.species.add(self.__class__) class WhiteBlob(Blob): def __init__(self): super(WhiteBlob, self).__init__("White Blob") Blob.species.add(self.__class__) class GreenBlob(Blob): def __init__(self): super(GreenBlob, self).__init__("Green Blob") Blob.species.add(self.__class__) class RainbowBlob(Blob): def __init__(self): super(RainbowBlob, self).__init__("Rainbow Blob") Blob.species.add(self.__class__) # --- JELLIES --- class MessyJelly(Jelly): def __init__(self): super(MessyJelly, self).__init__("Messy Jelly") Jelly.species.add(self.__class__) class MouldedJelly(Jelly): def __init__(self): super(MouldedJelly, self).__init__("Moulded Jelly") Jelly.species.add(self.__class__) class TrifleJelly(Jelly): def __init__(self): super(TrifleJelly, self).__init__("Trifle Jelly") Jelly.species.add(self.__class__) # --- SLIMES --- class StickySlime(Slime): def __init__(self): super(StickySlime, self).__init__("Sticky Slime") Slime.species.add(self.__class__) class CamouflageSlime(Slime): def __init__(self): super(CamouflageSlime, self).__init__("Camouflage Slime") Slime.species.add(self.__class__) # Time for class initialization RedBlob() BlueBlob() WhiteBlob() GreenBlob() RainbowBlob() MessyJelly() MouldedJelly() TrifleJelly() StickySlime() CamouflageSlime() {% endsyntax %} # Testing Hyde ## Metadata