Sunday, July 11, 2010

Crossover with the Python Programming Language

import actions

import datetime

import frusengladje

import props

import random

import stories

import songs


class SleepNoMoreCharacter:

def __init__(self, cast):

self.cast = cast


def perform(self):

raise NotPayingYouForNothingException("Cmon guys! Let's go freak out some SNM noob!")

def make_out(self, other_character):

raise NotHotEnoughException("Something hot needs to happen when this character makes out with %s" % other_character)

def one_on_one(self, audience_member):

raise NotScaryEnoughException("What do you think this is, the Second Mrs. De Winter's one-on-one?!")

class Hecate(SleepNoMoreCharacter):

def perform(self):

next_carton = frusengladje.open_carton()

next_carton.eat(self)


def make_out(self, other_character):

raise StuckInTheBasementException("God it smells musty down here ...")

def one_on_one(self, audience_member):

audience_member.tell_story(stories.WELL_STORY)

audience_member.find_ring(datetime.now)

class BaldWitch(SleepNoMoreCharacter):

def perform(self):

actions.deliver_prophecy(self.cast.Macbeth)

def make_out(self, other_character):

actions.kisses.chaste_kiss(other_character)

def one_on_one(self, audience_member):

actions.wash_up(self)

class MaleWitch(SleepNoMoreCharacter):

def perform(self):

actions.get_naked(self)

actions.deliver_prophecy(self.cast.Macbeth)

def make_out(self, other_character):

actions.kisses.best_kiss(other_character)

def one_on_one(self, audience_member):

actions.blind_with_flashlight(audience_member)

audience_member.scare_with(props.dead_bambi)

class LongHairedWitch(SleepNoMoreCharacter):

def perform(self):

actions.deliver_prophecy(self.cast.Macbeth)

def make_out(self, other_character):

actions.kisses.with_tongue(other_character)

def one_on_one(self, audience_member):

actions.sing(self.cast.MaleWitch, songs.MOONLIGHT_BECOMES_YOU)

actions.give_steamy_lapdance(audience_member)

class Macbeth(SleepNoMoreCharacter):

def perform(self):

actions.kill(self.cast.Duncan)

def make_out(self, other_character):

actions.driven_insane_by(self.cast.Banquo)

def one_on_one(self, audience_member):

actions.kill(audience_member)


class LadyMacbeth(SleepNoMoreCharacter):

def perform(self):

actions.driven_insane_by(self)

def make_out(self, other_character):

for cast_member in self.cast:

actions.shoo_from_table(cast_member)

def one_on_one(self, audience_member):

actions.foxy_boxing(audience_member)

class Macduff(SleepNoMoreCharacter):

def perform(self):

if self.cast.LongHairedWitch.is_nearby():

actions.sexy_dance_with(self.cast.LongHairedWitch)

else:

actions.avenge(self.cast.Duncan)

def make_out(self, other_character):

actions.kisses.angry_kiss(other_character)

def one_on_one(self, audience_member):

raise TooEnragedForOneOnOnesException("NOOOOO!!!!! DUUUUNNNCCCCAAAAANNNNN!!!!")

class LadyMacduff(SleepNoMoreCharacter):

def perform(self):

if self.cast.Duncan.is_dead():

actions.murdered_by(self.cast.Macbeth)

else:

actions.bookcase_dance(self.cast.Macduff)

def make_out(self, other_character):

actions.kisses.random_kiss(other_character)

def one_on_one(self, audience_member):

pass

class Malcolm(SleepNoMoreCharacter):

def perform(self):

actions.discover_body(self.cast.Duncan)

actions.ring_the_alarum_bell()

def make_out(self, other_character):

actions.kisses.cajun_style(other_character)

def one_on_one(self, audience_member):

props.room_lights.turn_off()

audience_member.scare_with(props.eggs)

audience_member.scare_with(props.magnifying_glass)

audience_member.scare_with(actions.shouting)

audience_member.scare_with(self)

audience_member.scare_with(random.choice(props.everything_in_the_room))

class Banquo(SleepNoMoreCharacter):

def perform(self):

if self.cast.Macduff.is_nearby():

actions.breakdance_fight(self.cast.Macduff)

else:

actions.murdered_by(self.cast.Macbeth)

def make_out(self, other_character):

actions.drive_insane(self.cast.Macbeth)

def one_on_one(self, audience_member):

audience_member.startled_by(self.incredible_handsomeness)

class Duncan(SleepNoMoreCharacter):

def perform(self):

if self.cast.Macbeth.is_nearby():

actions.foolishly_go_to_bed_without_locking_the_doors_first()

else:

actions.do_scottish_king_stuff()

def make_out(self, other_character):

actions.kisses.like_a_virgin(other_character)

actions.hums("Touched for the very first time ...")

def one_on_one(self, audience_member):

raise TooDeadForOneOnOnesException("Meh. I'm dead. Think I'll go dance with Mrs. Danvers in the ballroom.")

class Danvers(SleepNoMoreCharacter):

def perform(self):

if self.cast.Macduff.is_nearby():

actions.door_dance(self.cast.Macduff)

elif self.cast.LadyMacbeth.is_nearby():

actions.bathtub_dance(self.cast.LadyMacbeth)

elif self.cast.LadyMacduff.is_nearby():

actions.taunt_with(props.funny_looking_water)

elif self.cast.Duncan.is_nearby() and self.cast.Duncan.is_dead():

actions.ballroom_dance(self.cast.Duncan)

else:

actions.take_five("Maybe I'll go upstairs and scribble crazy diagrams on the walls ...")

def make_out(self, other_character):

raise ThatsNotWhatRebeccaWouldHaveDoneException("I watched you make out just as I watched her a year ago. Even in the makeout scene the third time tonight you couldn't compare.")

def one_on_one(self, audience_member):

audience_member.drinks(props.funny_looking_water)

class DeWinter(SleepNoMoreCharacter):

def perform(self):

actions.stick_with_pins(props.apple) and actions.roam_with(props.valise) and actions.pine_for(self.cast.Duncan)

def make_out(self, other_character):

actions.kisses.blow_kiss_to(other_character)

def one_on_one(self, audience_member):

audience_member.tell_story(stories.LOST_BOY_STORY)

actions.cry_softly()

audience_member.offer_sympathy_to(self)

class Porter(SleepNoMoreCharacter):

def perform(self):

actions.add_to_baby_carriage(props.gift_box)

def make_out(self, other_character):

pass

def one_on_one(self, audience_member):

if random.randint(0, 1000000) == 1000000:

actions.kung_fu_battle(audience_member)

class SleepNoMoreCast()

def __init__(self):

self.members = {

"Hecate": Hecate(self),

"BaldWitch": BaldWitch(self),

"MaleWitch": MaleWitch(self),

"LongHairedWitch": LongHairedWitch(self),

"Macbeth": Macbeth(self),

"LadyMacbeth": LadyMacbeth(self),

"Macduff": Macduff(self),

"LadyMacduff": LadyMacduff(self),

"Malcolm": Malcolm(self),

"Banquo": Banquo(self),

"Duncan": Duncan(self)

"MrsDanvers": Danvers(self),

"SecondMrsDeWinter": DeWinter(self),

"Porter": Porter(self)

}

def __getattr__(self, name):

if name in self.members:

return self.members[name]

else:

raise CastMemberNotFoundException("You must be thinking of one of the other fine Punchdrunk production.")

def __iter__(self):

for cast_member in self.members.itervalues():

yield cast_member

def get_all(self):

return self.members.values()

if __name__ == "__main__":

cast = SleepNoMoreCast()

while frusengladje.exists: # Possible infinite loop

cast.Hecate.perform()

for cast_member in cast:

cast_member.perform()

for random_cast_member in random.shuffle(cast.get_all()):

other_cast_member = random.choice(cast.get_all())

random_cast_member.make_out(other_cast_member)

1 comment:

  1. Wow, I never realized how weird Python really is!

    ReplyDelete