コード例 #1
0
    def update(self, agent_update):
        observation_map = agent_update.observation_map
        observation = observation_map.observations[self.agent_id]
        self.position = (
            observation.get_value(self.feature_names['x']).feature_value,
            observation.get_value(self.feature_names['y']).feature_value,
            )

        observed_bases = {}
        for direction, basis in zip(self.direction_bases.keys(), self.direction_bases.values()):
            distance = observation.get_value(self.feature_names[direction]).feature_value
            observed_bases[basis] = distance
        """
        if self.updates < 5:
            print "agent position: " + str(self.position)
            print "bases: " + str(observed_bases)
            self.updates += 1
            """

        self.log_map, self.observed_map = self.update_maps(
            self.position,
            self.log_map,
            self.observed_map,
            observed_bases,
            )

        action_map = ActionMap()
        action = Action()
        next_x, next_y = self.next_movement(self.position, self.log_map)
        x_component = NumericActionComponent(next_x)
        action.add_component(self.component_names['x'], x_component)
        y_component = NumericActionComponent(next_y)
        action.add_component(self.component_names['y'], y_component)
        action_map.add_action(self.agent_id, action)
        return action_map