class Map(object): scenes = { 'phone_call': Levels.PhoneCall(), 'date_decision': Levels.DateDecision(), 'fancy_bar': Levels.FancyBar(), 'weird_pub': Levels.WeirdPub(), 'ice_skating': Levels.IceSkating(), 'game_won': Levels.GameWon(), 'date_transition': Levels.DateTransition(), 'her_place': Levels.HerPlace(), 'game_over': Levels.GameOver(), 'game_over_dead': Levels.GameOverDead(), } def __init__(self, start_scene): self.start_scene = start_scene def next_scene(self, scene_name): val = Map.scenes.get(scene_name) return val def opening_scene(self): return self.next_scene(self.start_scene)