Вы не уверены, что классы в Learn Python сложный путь ex43?

Я не совсем понимаю, как классы Map и Engine работают вместе для запуска этой игры типа Adventureland (полный код здесь:http://learnpythonthehardway.org/book/ex43.html). Я думаю, что понимаю, что происходит в классе Map, но яЯ действительно запутался в том, что происходит в Engine () и зачем нужна переменная scene_map.

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)

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)

a_map = Map('central_corridor')
a_game = Engine(a_map)
a_game.play()

Спасибо за любую помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос