從0開始用python寫一個命令行小遊戲(11)

第11篇!第11篇!第11篇!!!說實話,我真沒想過文章會更新到10以上。可是,來都來了,咱們的編程仍是要繼續的嘛!今天的主題:配置文件!首先,上篇連接:從0開始用python寫一個命令行小遊戲(十)python

配置文件

匹配植物

首先,我要強調一點:全部須要變量匹配的地方(相似別的語言中的switch),均可以用配置文件(主要是字典)。好比,個人遊戲裏面種植植物時匹配植物名稱。既然這個配置文件須要與植物的類交互,因此要使用Python格式,而非JSON或別的語言。試試看:編程

# config.py
import game_obj as o

config = {
    "plant_name": {
        's': o.Sunflower,
        'p': o.Peashooter,
    }
}

而後把game.Game.process_command()try-except-else中的else改成:segmentfault

from config import config
if plant_type in config["plant_name"].keys():
    config["plant_name"][plant_type](x, y)            # 獲取類型並調用構造方法

怎麼樣,是否是優雅不少呢?但別忘了,咱們還有一個地方有急需switch語句:殭屍配置。dom

匹配殭屍

config.py改成:命令行

import game_obj as o

config = {
    "plant_name": {}        # 同前
    "zombie_name": {
        "zombie": o.Zombie,
        "kicker": o.KickerZombie,
    }
}

而後將game.Game.step()改成:code

def step(self, commands):
    # 其他同前
    if str(self.step_num) in self.steps.keys():
        action = self.steps[str(self.step_num)]
        from config import config
        from random import randint
        action_list = action.split()
        if action_list[-1] in config["zombie_name"].keys():
            config["zombie_name"][action_list[-1]](9, randint(0, 4), action_list[0] == 'exit')

好了,今天就這樣吧。遊戲

下集預告

下次···對了,多關卡!敬請繼續關注!get

相關文章
相關標籤/搜索