Advertisement
Guest User

Untitled

a guest
Aug 17th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.58 KB | None | 0 0
  1. from sys import exit
  2. from random import randint
  3.  
  4. class Scene(object):
  5.    
  6.     def enter(self):
  7.         exit(1)
  8.  
  9. def inv():
  10.     print "Inventory: [" + ",".join((item[1].name for item in inventory)) + "]"
  11.  
  12. try:
  13.     inputLookup = {"inventory": lambda: inv()}
  14. except:
  15.     print "ERROR."
  16.  
  17. class Item(object):
  18.     def __init__(self, name, quantity=1):
  19.         self.name = name
  20.         self.raw = name.strip().lower()
  21.         self.quantity = quantity
  22.  
  23.     def recalc(self):
  24.         self.netValue = self.quantity * self.value
  25.  
  26. class Container(object):
  27.     def __init__(self, name):
  28.         self.name = name
  29.         self.inside = {}
  30.  
  31.     def __iter__(self):
  32.         return iter(self.inside.items())
  33.  
  34.     def __len__(self):
  35.         return len(self.inside)
  36.  
  37.     def __contains__(self, item):
  38.         return item.raw in self.inside
  39.  
  40.     def __getitem__(self, item):
  41.         return self.inside[item.raw]
  42.  
  43.     def __setitem__(self, item, value):
  44.         self.inside[item.raw] = value
  45.         return self[item]
  46.  
  47.     def add(self, item, quantity=1):
  48.         if quantity < 0:
  49.             print "ERROR."
  50.         if item in self:
  51.             self[item].quantity += quantity
  52.             self[item].recalc()
  53.         else:
  54.             self[item] = item  
  55.            
  56. inventory = Container("Inventory")
  57.  
  58. class IntroScreen(Scene):
  59.    
  60.     def enter(self):
  61.         print "This is a placeholder."
  62.         return 'bedroom'
  63.        
  64.        
  65. class Bedroom(Scene):
  66.    
  67.     def enter(self):
  68.         print "Birds chirping. Those damn birds are always chirping."
  69.         print "It's not yet fully light out, but they won't let you sleep past sunrise-- never"
  70.         print "do. Only a few more minutes until your--"
  71.         print "BRRRRRRING."
  72.         print "> Dammit."
  73.         print "BRRRRRRING."
  74.         print "alarm clock goes off."
  75.         while True:
  76.             usim1 = raw_input(">>> ")
  77.             if usim1 == "inventory":
  78.                 print "Inventory: [" + ",".join((item[1].name for item in inventory)) + "]"
  79.             elif usim1 == "snooze" or usim1 == "hit snooze":
  80.                 print "> A few more minutes would be nice, but I've gotta wake up."
  81.                 second(self)
  82.                
  83.             elif usim1 == "get up" or usim1 == "get out of bed" or usim1 == "wake up":
  84.                 second(self)
  85.    
  86.             elif usim1 == "help":
  87.                 print "How about you help me by shutting that damn alarm clock up!"
  88.             else:
  89.                 print "Try something else maybe?"
  90.        
  91.     def second(self):
  92.        
  93.         print "Your body aches as you get out of bed. You're no fantastic Fox any more."
  94.         print "> I hope that good-for-nothing Weasel didn't eat all my food again."
  95.         print "You walk out of your bedroom, into the hallway."
  96.         print "To the left of you is Weasel's room. The door is open."
  97.         print "To the right of you is the bathroom. Sounds like Weasel is in there."
  98.         print "The kitchen is down the hall, in front of you."
  99.         while True:
  100.             usim2 = raw_input(">>> ")
  101.             if usim2 == "inventory":
  102.                 print "Inventory: [" + ",".join((item[1].name for item in inventory)) + "]"
  103.             elif usim2 == "walk forward" or usim2 == "go forward" \
  104.                 or usim2 == "walk into kitchen" or usim2 == "go into \
  105.                 kitchen":
  106.                 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"
  107.                 break
  108.                 third(self)
  109.                
  110.             else:
  111.                 break
  112.     def third(self):
  113.         # return 'scenenumberthree'
  114.         print "***" * 10
  115.         exit(0)
  116.        
  117.                
  118. class Placeholder(Scene):
  119.    
  120.     def third(self):
  121.         print "Oh yeah. This works."
  122.        
  123.     def second(self):
  124.         third(self)
  125.    
  126.     def enter(self):
  127.         second(self)
  128.        
  129.        
  130. class Map(Scene):
  131.    
  132.     scenes = {
  133.         'introscreen': IntroScreen(),
  134.         'bedroom': Bedroom(),
  135.         'scenenumberthree': Placeholder()
  136.         }
  137.        
  138.     def __init__(self, start_scene):
  139.         self.start_scene = start_scene
  140.        
  141.     def next_scene(self, scene_name):
  142.         return Map.scenes.get(scene_name)
  143.        
  144.     def opening_scene(self):
  145.         return self.next_scene(self.start_scene)
  146.        
  147. class Engine(object):
  148.    
  149.     def __init__(self, scene_map):
  150.         self.scene_map = scene_map
  151.        
  152.     def play(self):
  153.         current_scene = self.scene_map.opening_scene()
  154.        
  155.         while True:
  156.             print "----------"
  157.             try:
  158.                 next_scene_name = current_scene.enter()
  159.                 print "--1--"
  160.             except:
  161.                
  162.                 try:
  163.                     next_scene_no2 = current_scene.second()
  164.                     print "--2--"
  165.                 except:
  166.                    
  167.                     try:
  168.                         next_scene_no3 = current_scene.third()
  169.                         print "--3--"
  170.                     except:
  171.                            
  172.                         try:
  173.                             next_scene_no4 = current_scene.fourth()
  174.                             print "--4--"
  175.                         except:
  176.                                    
  177.                             try:   
  178.                                 next_sceneno5 = current_scene.fifth()
  179.                                 print "--5--"
  180.                             except:
  181.                                 pass
  182.                                
  183.             current_scene = self.scene_map.next_scene(next_scene_name)     
  184.                
  185.            
  186.  
  187. a_map = Map('introscreen')
  188. a_game = Engine(a_map)
  189. a_game.play()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement