资讯专栏INFORMATION COLUMN

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

MorePainMoreGain / 497人阅读

摘要:这项乱入的修改就是修改目录结构,为多关卡作准备上篇链接从开始用写一个命令行小游戏七多关卡目录结构我计划把目录结构改成这样关卡文件,是关卡用完后的默认配置其中是目前的关卡数,为表示关卡已经用完,使用默认关卡。

今天,我突然想起了另一项修改,所以原计划的多行+新僵尸就改到第九篇再介绍。这项“乱入”的修改就是:修改目录结构,为多关卡作准备!上篇链接:从0开始用python写一个命令行小游戏(七)

多关卡目录结构

我计划把目录结构改成这样:

levels
- 0.json
- 1.json
- ...          # 关卡文件,0.json是关卡用完后的默认配置
level.txt
game_obj.py
game.py

其中level.txt是目前的关卡数,为0表示关卡已经用完,使用默认关卡。在game.pyGame__init__()方法开头加上:

with open("level.txt") as lv:
    try:
        level = lv.read()
        with open("levels/%s.json" % level) as fw:
            self.steps = json.load(fw)
        print("Level " + level)
    except FileNotFoundError:
        with open("levels/0.json") as fw:
            self.steps = json.load(fw)
        with open("level.txt", "w") as lv_w:
            lv_w.write("0")
        print("Default level")

并在这个类start()方法的末尾加上:

with open("level.txt") as fr:
    current_level = int(fr.read())
with open("level.txt", "w") as lv_w:
    lv_w.write(str(current_level + 1))
if os.path.exists(".git"):
    os.popen("git commit -am "commit level change"")

该文件开头加上import os。这里简单介绍一下最后那个if语句的作用:os.path.exists()查看在当前目录下有没有这个文件或文件夹,os.popen()执行系统命令,并将输出返回。这里我们没有接收返回,即不处理输出。整句语句意思就是:如果.git目录存在,则自动执行Git提交命令。如果该目录不存在,则不执行提交命令,以免引起错误。Git是一个版本控制软件,有兴趣的话可以了解一下,这里不作介绍。好了,我们又成功添加了一个功能,只要加上对应的配置文件(在此不贴出)就可以实现多关卡游戏了!至此为我的游戏v1.0 beta 4发布状态。

下集预告

下次,我保证,没有“乱入”的修改,新僵尸+多行网格,敬请期待!

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

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

相关文章

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

    摘要:好了,今天终于到了你们期待已久的多行新僵尸。好,开始吧上篇链接从开始用写一个命令行小游戏八。多行游戏一开始我为了尽可能简化游戏,我用了一个单行数组,以模拟只有一行的游戏。一个形如的列表生成式等价于运行后的列表。 好了,今天终于到了你们期待已久的多行+新僵尸。其实我本来想把它们放在两个beta里解决的,但后来忘了,于是打包起来,跳过beta 5,直接发布了beta 6,就是今天的结束状态...

    WalkerXu 评论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一个命令游戏(十)

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

    OnlyLing 评论0 收藏0

发表评论

0条评论

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