def __states(self):
    states = dict()
    states_vec = dict()
    s = 0
    for i in range(self.town_map.shape[0]):
        for j in range(self.town_map.shape[1]):
            for k in range(self.town_map.shape[0]):
                for l in range(self.town_map.shape[1]):
                    states[s] = np.array([i, j, k, l])
                    states_vec[(i, j, k, l)] = s
                    s += 1
    return (states, states_vec)
def __states(self):
    states = dict()
    states_vec = dict()
    s = 0
    for i in range(self.town_map.shape[0]):
        for j in range(self.town_map.shape[1]):
            for k in range(self.town_map.shape[0]):
                for l in range(self.town_map.shape[1]):
                    states[s] = np.array([i, j, k, l])
                    states_vec[(i, j, k, l)] = s
                    s += 1
    return (states, states_vec)