Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Scene(object):
- def enter(self):
- print "This scene is not yet configured. Subclass it and implement enter()."
- exit(1)
- 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 "\n----------"
- next_scene_name = current_scene.enter()
- current_scene = self.scene_map.next_scene(next_scene_name)
- class Death(Scene):
- def enter(self):
- print "death text"
- exit(1)
- class CentralCorridor(Scene):
- def enter(self):
- print "loads of text goes here"
- action = raw_input("> ")
- if action == "dodge":
- print "loads of text goes here"
- return 'death'
- elif action == 'tell a joke':
- print "loads of text goes here"
- return 'laser_weapon_armory'
- else:
- print "DOES NOT COMPUTE!"
- return 'central_corridor'
- class Map(object):
- scenes = {
- 'central_corridor': CentralCorridor(),
- 'laser_weapon_armory': LaserWeaponArmory(),
- 'the_bridge': TheBridge(),
- 'escape_pod': EscapePod(),
- 'death': Death()
- }
- 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)
- a_map = Map('central_corridor')
- a_game = Engine(a_map)
- a_game.play()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement