从0开始用python写一个命令行小游戏(十)

前几天出去旅游了,因此没能更新文章,但转眼间,“从0开始用python写一个命令行小游戏”系列已经更新到了第十篇。闲话少说,今天咱们要开始重构了!但第一件事仍是上篇的连接:从0开始用python写一个命令行小游戏(九)python

重构

控制游戏结束

以前咱们是直接sys.exit()结束程序的,灵活性不高,尤为是须要连续玩游戏时。因此,咱们须要一个标志变量,以标志游戏的结束。因此,在game_obj.py开头加上:segmentfault

exited = False

而后把BaseZombie类中的die()方法修改成:命令行

def die(self):
    if self.die_to_exit:
        exited = True

而后把game.py中的Game类的start()方法的while循环改成:code

while not o.exited:
    pass            # 内部同前
这里说明一下:为了减小个人打字量,以后会把相似于 game.py中的Game类的start()方法” 改写为 Python path的形式,即: game.Game.start()方法。

而后咱们会发现,以前咱们使用的在游戏最后判断输赢并输出的代码再也不能正确地判断输赢了,它永远报告你输了,即便你赢了也是如此。那怎么办呢?答案是:再使用一个标志变量!游戏

判断输赢

为解决刚才的问题,可使用另外一个标志变量:plant_win。顾名思义,它指的是植物是否赢了。在game_obj.py开头再次添加:get

plant_win = False

而后把game_obj.BaseZombie.die()方法改成:it

if self.die_to_exit:
    exited = True
    plant_win = True

在这个类的step()方法开头添加:class

if self.x == 0:
    exited = True
    plant_win = False

至于如何根据这个标志判断输赢,呃,大家本身想吧,太明显了。变量

下集预告

下次,咱们将引入一个配置文件,使代码变得更加优雅。敬请继续关注!重构

相关文章
相关标签/搜索