资讯专栏INFORMATION COLUMN

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

OnlyLing / 562人阅读

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

前几天出去旅游了,所以没能更新文章,但转眼间,“从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

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

下集预告

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42280.html

相关文章

  • 0开始python一个命令游戏(11)

    摘要:但是,来都来了,我们的编程还是要继续的嘛今天的主题配置文件首先,上篇链接从开始用写一个命令行小游戏十配置文件匹配植物首先,我要强调一点所有需要变量匹配的地方类似别的语言中的,都可以用配置文件主要是字典。 第11篇!第11篇!第11篇!!!说实话,我真没想过文章会更新到10以上。但是,来都来了,我们的编程还是要继续的嘛!今天的主题:配置文件!首先,上篇链接:从0开始用python写一个命...

    idealcn 评论0 收藏0
  • 0开始python一个命令游戏(六)

    摘要:嗯,今天我们的从开始用写一个命令行小游戏系列总算走到了我发布的时候。玩过我的正式版的话,你会发现现在的游戏还和正式版差别很大。好,现在就来顺便补充一下,上次方法后追加僵尸被打败是完成了好好庆祝一下 嗯,今天我们的从0开始用python写一个命令行小游戏系列总算走到了我发布v1.0 beta 1的时候。玩过我的1.0正式版的话,你会发现现在的游戏还和正式版差别很大。不管怎么样,现在就开始...

    channg 评论0 收藏0
  • 0开始python一个命令游戏(四)

    摘要:讲点搞笑的,最近在开发时,发现最令程序猿头疼的一点就是没有语句。但自动的僵尸呢哎,别急,那是后话下集预告下次,我要把游戏变得全自动具体工作令僵尸自动出现,和让用户用命令控制游戏这些工作完成后,就可以发布了欢迎继续关注 嗯,还是我,我又回来了——以后文章就两天一篇吧。讲点搞笑的,最近在开发v1.1 beta 3时,发现Python最令程序猿头疼的一点就是没有switch/case语句。要...

    graf 评论0 收藏0
  • 0开始python一个命令游戏(五)

    摘要:今天我时间有点紧张,所以不说废话了,直接进入正题。好现在,游戏可以自动产生僵尸了。然后呢用户可控的植物真正的植物大战僵尸游戏可以让玩家用鼠标控制游戏。由于这是命令行游戏,所以我们得用命令控制。 今天我时间有点紧张,所以不说废话了,直接进入正题。前作链接: 从0开始用python写一个命令行小游戏(一) 从0开始用python写一个命令行小游戏(二) 从0开始用python写一个命令行...

    skinner 评论0 收藏0
  • 0开始python一个命令游戏(三)

    摘要:今天就开始由于整个游戏会有自己的一些属性和行为,所以我决定把它编写在类里。初始化游戏定义自己的属性先定义这些。我计划使用格式,以第几步出现作为键,以出现的僵尸类型以后可能会出现不同类型的僵尸和是否在它被消灭后结束游戏作为值。 Hey, everyone! 文章迟到了一天,但我今天心情很好,因为有两个好消息,你们想先听哪个?哎,算了,反正都是好消息,一起听吧。 本游戏的v1.1 bet...

    Tony_Zby 评论0 收藏0

发表评论

0条评论

OnlyLing

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<