本节书摘来自异步社区《易学Python》一书中的第6章,第6.5节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
6.5 在洞穴迷宫中漫步
如果没有探险,冒险游戏就不成其为冒险游戏。在大多数游戏中,玩家发出类似于GO NORTH(简写为NORTH或N)的命令来移动。玩家移动时,游戏将更新描述,让玩家知道自己刚穿过的区域。您将像添加其他命令那样添加移动命令,但同时添加一些缩写,让玩家输入移动命令更容易。
首先,来看看如何在Cave类中添加方向,然后创建让玩家能够移动的命令。
程序清单6.10 在Cave类中添加方向
提示:
设计类似于Cave这样的类(它们相当于库类)时,尽可能捕获错误并引发异常都是不错的主意。这样,以后使用这些类时如果犯错,错误将显而易见。
至此,Cave类能够存储方向以及到其他洞穴的通道,还能向玩家描述这些方向。下面来添加一些命令,让玩家能够在洞穴之间移动,如程序清单6.11所示。
程序清单6.11 在洞穴之间移动的命令
至此,就大功告成了。注意到这里是如何在玩家和洞穴间划分职责的吗?这是面向对象设计常见的特征——对象的职责非常明确。在这里,洞穴负责记录自己的出口及其通往哪些洞穴,而玩家可在其命令go()中使用这些信息。如果以后有其他对象需要使用方向信息,您无需从Player类或其他地方提取相应的代码,就能让新功能正常运行。
然而,玩家需要在洞穴网络中移动,为此程序清单6.12扩展了前面的洞穴网络生成函数。
程序清单6.12 创建洞穴网络
如果此时运行players.py,玩家将身处第一个洞穴,并能够看到一些出口以及常规描述和物品。玩家可捡拾宝剑、在洞穴间移动、将宝剑丢在其他地方以及返回原来的洞穴。
祝贺您建造了一个独立王国!请前往这个王国探险,等您回来后再添加其他一些内容。