本节书摘来自异步社区《易学Python》一书中的第6章,第6.7节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
6.7 危险与刺激
本章游戏的最后一部分是让玩家和怪物相互攻击。对游戏来说,竞争氛围必不可少:格斗能力、速度、谁建造的城市最大、谁建造的房子最好等。在这里,您编写的是一个地下城冒险游戏,因此格斗必不可少:《龙与地下城》玩家都希望能够痛击兽人。鉴于格斗将在玩家和怪物之间展开,您首先给Player类添加一个attack方法,如程序清单6.15所示。
程序清单6.15 攻击其他参与者
这就是在游戏中支持格斗所需做的全部工作!鉴于妥善地封装了所有类,因此不需要对Cave、Item和Game类做任何修改。准确地说是不完全这样;如果您运行该程序,将发现一个显而易见的问题:怪物不会反击;更糟糕的是,怪物被玩家杀死后,还在四处乱窜!这两个问题都很容易解决,只需简单地升级怪物的AI即可,如程序清单6.16所示。
程序清单6.16 更新怪物的AI
至此,您添加了冒险游戏的所有元素:可供玩家探索的洞穴迷宫、攻击玩家的怪物、可供玩家收集以帮助他实现目标的物品和财宝。有了本章的代码,再加上想象力,您几乎能够根据喜好创建任何冒险游戏。