【发布时间】:2014-08-19 17:26:28
【问题描述】:
我一直在研究 Zed Shaw 的 Learn Python The Hard Way(仅供参考——Python 和一般编程的新手)。我一直很喜欢它,但被exercise 43 困惑了一个多星期。
前提是构建一个简单的文本输入风格游戏(如 Zork),您可以在其中向跑步者发出指令。以下是本练习代码的简化版本:http://pastebin.com/9YJ2PYDh
我了解如何使用此代码启动游戏:
a_map = Map('central_corridor')
a_game = Engine(a_map)
a_game.play()
我似乎无法理解后续场景是如何返回的。
每个类的enter方法返回的值,即在CentralCorridor中返回'laser_weapon_armory',是如何返回给Map类的?还是仅将其发送回 Engine 类的 play 方法?我没有看到 Scene 类的“return”中传递的值如何重新启动 Engine 类的 play 方法中的 while 循环。
我已经查看了this question 中提供的答案,但对我来说仍然没有意义。
感谢并为破坏任何术语而道歉。
【问题讨论】:
-
魔法发生在Engine.play的While循环中,下一个场景由current_scene.enter()的结果决定,然后在返回之前将next_scene的值赋给current_scene再次回到循环的顶部。
标签: python