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

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

多关卡目录结构

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

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

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

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()方法的末尾加上:segmentfault

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发布状态。命令行

下集预告

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

相关文章
相关标签/搜索