fork download
  1. class Scene(object):
  2. def enter(self):
  3. pass
  4.  
  5. class Beginning(Scene):
  6. def enter(self):
  7. print "Beginning Scene"
  8. return 'troll'
  9.  
  10. class Troll(Scene):
  11. def enter(self):
  12. print "Troll Scene"
  13. return 'soldier'
  14.  
  15. class Soldier(Scene):
  16. def enter(self):
  17. print "Soldier Scene"
  18. return 'dragon'
  19.  
  20. class Dragon(Scene):
  21. def enter(self):
  22. print "Dragon Scene"
  23. return 'treasure'
  24.  
  25. class Treasure(Scene):
  26. def enter(self):
  27. print "Treasure Scene"
  28. win = True
  29. return 'death'
  30.  
  31. class Death(Scene):
  32. def enter(self):
  33. if (win == True):
  34. print "Yay! You win!"
  35. else:
  36. print "Sorry. You died."
  37. return 'finished'
  38.  
  39. class Map(object):
  40. scenes = {
  41. 'beginning' : Beginning(),
  42. 'troll' : Troll(),
  43. 'soldier' : Soldier(),
  44. 'dragon' : Dragon(),
  45. 'treasure' : Treasure(),
  46. 'death' : Death(),
  47. }
  48.  
  49. scene_name = 'beginning'
  50. final_scene = 'finished'
  51. win = False
  52. while scene_name != final_scene:
  53. current_scene = Map.scenes.get(scene_name)
  54. scene_name = current_scene.enter()
  55.  
Success #stdin #stdout 0.01s 7736KB
stdin
Standard input is empty
stdout
Beginning Scene
Troll Scene
Soldier Scene
Dragon Scene
Treasure Scene
Sorry. You died.