Mar-20-2018, 03:17 PM
class Engine(object): def __init__(self, scene_map): print "Inside Engine.scene_map" print "scene_map: %r" %scene_map self.scene_map = scene_map def play(self): print "Inside Engine.play" current_scene = self.scene_map.opening_scene() print "current_scene: %r" %current_scene while True: print "\n------------" print "Inside Engine.while_loop" next_scene_name = current_scene.enter() print "After current_scene.enter()" current_scene = self.scene_map.next_scene(next_scene_name) print "After scene_map.next_scene()" class CentralCorridor(Scene): def enter(self): action = raw_input("> ") if action == "shoot!": print "Quick on the draw you yank out your blaster and fire it at the Gothon." print "You are dead. Then he eats you." return 'death' elif action == "dodge!": print "He eats you." return 'death' elif action == "tell a joke": print "You jump through the Weapon Armory door while he laughing." 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): print "Inside Map.start_scene" print "start_scene: %r" %start_scene self.start_scene = start_scene def next_scene(self, scene_name): print "Inside Map.next_scene" print "scene_name: ", scene_name return Map.scenes.get(scene_name) def opening_scene(self): print "Inside Map.opening_scene" print "start_scene: %r" %self.start_scene return self.next_scene(self.start_scene) a_map = Map('central_corridor') print "after a_map" a_game = Engine(a_map) print "after a_game" a_game.play() print "after a_game.play()"Hi,
I am a beginner. Having some doubts on a code i saw in a book.
Can anyone explain to me why next_scene() is under scene_map as follows
current_scene = self.scene_map.next_scene(next_scene_name)instead of Map.next_scene?
when i print scene_map as per
print "scene_map: %r" %scene_map, i get
Output:<__main__.Map object at 0x1028504d0>
as result, can explain what it means?Thanks.