今天,我突然想起了另一项修改,所以原计划的多行+新僵尸就改到第九篇再介绍。这项“乱入”的修改就是:修改目录结构,为多关卡作准备!上篇链接:从0开始用python写一个命令行小游戏(七)
多关卡目录结构
我计划把目录结构改成这样:
levels
- 0.json
- 1.json
- ... # 关卡文件,0.json是关卡用完后的默认配置
level.txt
game_obj.py
game.py
其中level.txt
是目前的关卡数,为0表示关卡已经用完,使用默认关卡。在game.py
中Game
类__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发布状态。
下集预告
下次,我保证,没有“乱入”的修改,新僵尸+多行网格,敬请期待!