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

发布时间:2019-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了从0开始用python写一个命令行小游戏(十)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

重构

控制游戏结束

之前我们是直接Sys.exIT()结束程序的,灵活性不高,尤其是需要连续玩游戏时。所以,我们需要一个标志变量,以标志游戏的结束。所以,在game_obj.py开头加上:

exited = False

然后把BaseZombie类中的die()方法修改为

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

然后把game.py中的Game类的start()方法的while循环改为:

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

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

判断输赢

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

plant_win = False

然后把game_obj.BaseZombie.die()方法改为:

if self.die_to_exit:
    exited = True
    plant_win = True

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

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

至于如何根据这个标志判断输赢,呃,你们自己想吧,太明显了。

下集预告

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

脚本宝典总结

以上是脚本宝典为你收集整理的从0开始用python写一个命令行小游戏(十)全部内容,希望文章能够帮你解决从0开始用python写一个命令行小游戏(十)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。