Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import exit
- from random import randint
- class Scene(object):
- def enter(self):
- exit(1)
- def inv():
- print "Inventory: [" + ",".join((item[1].name for item in inventory)) + "]"
- try:
- inputLookup = {"inventory": lambda: inv()}
- except:
- print "ERROR."
- class Item(object):
- def __init__(self, name, quantity=1):
- self.name = name
- self.raw = name.strip().lower()
- self.quantity = quantity
- def recalc(self):
- self.netValue = self.quantity * self.value
- class Container(object):
- def __init__(self, name):
- self.name = name
- self.inside = {}
- def __iter__(self):
- return iter(self.inside.items())
- def __len__(self):
- return len(self.inside)
- def __contains__(self, item):
- return item.raw in self.inside
- def __getitem__(self, item):
- return self.inside[item.raw]
- def __setitem__(self, item, value):
- self.inside[item.raw] = value
- return self[item]
- def add(self, item, quantity=1):
- if quantity < 0:
- print "ERROR."
- if item in self:
- self[item].quantity += quantity
- self[item].recalc()
- else:
- self[item] = item
- inventory = Container("Inventory")
- class IntroScreen(Scene):
- def enter(self):
- print "This is a placeholder."
- return 'bedroom'
- class Bedroom(Scene):
- def enter(self):
- print "Birds chirping. Those damn birds are always chirping."
- print "It's not yet fully light out, but they won't let you sleep past sunrise-- never"
- print "do. Only a few more minutes until your--"
- print "BRRRRRRING."
- print "> Dammit."
- print "BRRRRRRING."
- print "alarm clock goes off."
- while True:
- usim1 = raw_input(">>> ")
- if usim1 == "inventory":
- print "Inventory: [" + ",".join((item[1].name for item in inventory)) + "]"
- elif usim1 == "snooze" or usim1 == "hit snooze":
- print "> A few more minutes would be nice, but I've gotta wake up."
- second(self)
- elif usim1 == "get up" or usim1 == "get out of bed" or usim1 == "wake up":
- second(self)
- elif usim1 == "help":
- print "How about you help me by shutting that damn alarm clock up!"
- else:
- print "Try something else maybe?"
- def second(self):
- print "Your body aches as you get out of bed. You're no fantastic Fox any more."
- print "> I hope that good-for-nothing Weasel didn't eat all my food again."
- print "You walk out of your bedroom, into the hallway."
- print "To the left of you is Weasel's room. The door is open."
- print "To the right of you is the bathroom. Sounds like Weasel is in there."
- print "The kitchen is down the hall, in front of you."
- while True:
- usim2 = raw_input(">>> ")
- if usim2 == "inventory":
- print "Inventory: [" + ",".join((item[1].name for item in inventory)) + "]"
- elif usim2 == "walk forward" or usim2 == "go forward" \
- or usim2 == "walk into kitchen" or usim2 == "go into \
- kitchen":
- print "P L A C E H O L D E R P L A C E H O L D E R .\n\n"
- break
- third(self)
- else:
- break
- def third(self):
- # return 'scenenumberthree'
- print "***" * 10
- exit(0)
- class Placeholder(Scene):
- def third(self):
- print "Oh yeah. This works."
- def second(self):
- third(self)
- def enter(self):
- second(self)
- class Map(Scene):
- scenes = {
- 'introscreen': IntroScreen(),
- 'bedroom': Bedroom(),
- 'scenenumberthree': Placeholder()
- }
- def __init__(self, start_scene):
- self.start_scene = start_scene
- def next_scene(self, scene_name):
- return Map.scenes.get(scene_name)
- def opening_scene(self):
- return self.next_scene(self.start_scene)
- class Engine(object):
- def __init__(self, scene_map):
- self.scene_map = scene_map
- def play(self):
- current_scene = self.scene_map.opening_scene()
- while True:
- print "----------"
- try:
- next_scene_name = current_scene.enter()
- print "--1--"
- except:
- try:
- next_scene_no2 = current_scene.second()
- print "--2--"
- except:
- try:
- next_scene_no3 = current_scene.third()
- print "--3--"
- except:
- try:
- next_scene_no4 = current_scene.fourth()
- print "--4--"
- except:
- try:
- next_sceneno5 = current_scene.fifth()
- print "--5--"
- except:
- pass
- current_scene = self.scene_map.next_scene(next_scene_name)
- a_map = Map('introscreen')
- a_game = Engine(a_map)
- a_game.play()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement