Вы не уверены, что классы в 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()
Спасибо за любую помощь.