class Game:
    def __init__(self, config_filename):
        data = json.load(open(config_filename, 'r'))

        # init map
        self.map = Map(data)

        # init player
        self.player = Player(data['player'])

    def get_current_location_name(self):
        return self.map.get_current_location_name()

    def get_action(self):
        return self.get_action_dic().keys()

    def get_action_dic(self):
        return self.map.get_current_action()

    def play_action(self, action):
        action_dic = self.get_action_dic()
        action_dic[action](self.player)

    def get_player(self):
        return self.player

    def get_status(self):
        status = self.player.get_status()
        status['current_location'] = self.get_current_location_name()
        return status