Example #1
0
    def sum_sensors(self, prey_list, predator_list):
        vectors = []

        cohesion_vector = self.cohesion_vector(prey_list)
        vectors.append(util.multiply_vector(cohesion_vector, self.COHESION_WEIGHT))

        follow_vector = self.follow_vector(prey_list)
        vectors.append(util.multiply_vector(follow_vector, self.FOLLOW_WEIGHT))

        separation_vector = self.separation_vector(prey_list)
        vectors.append(util.multiply_vector(separation_vector, self.SEPARATION_WEIGHT))

        predator_vector = self.predator_vector(predator_list)
        vectors.append(util.multiply_vector(predator_vector, self.PREDATOR_WEIGHT))

        vectors.append(self.edge_repulsion_sensor())

        x_comp = 0
        y_comp = 0

        for x, y in vectors:
            x_comp += x
            y_comp += y

        vector_magnitude = util.vector_magnitude((x_comp, y_comp))

        if vector_magnitude > self.MAX_SPEED:
            x_comp /= vector_magnitude
            y_comp /= vector_magnitude

            x_comp *= self.MAX_SPEED
            y_comp *= self.MAX_SPEED

        return (x_comp, y_comp)
Example #2
0
    def sum_sensors(self, prey_list, predator_list):
        vectors = []

        prey_pos_vector = self.get_closest_prey_position(prey_list)
        vectors.append(util.multiply_vector(prey_pos_vector, self.PREY_POS_WEIGHT))

        prey_vel_vector = self.get_closest_prey_velocity(prey_list)
        vectors.append(util.multiply_vector(prey_vel_vector, self.PREY_VEL_WEIGHT))

        vectors.append(util.multiply_vector(self.edge_repulsion_sensor(), 100))

        print vectors

        print """Prey_Pos: {}
        Prey_Vel: {}
        Repulsion: {}""".format(*vectors)

        x_comp = 0
        y_comp = 0

        for x, y in vectors:
            x_comp += x
            y_comp += y

        vector_magnitude = util.vector_magnitude((x_comp, y_comp))

        if vector_magnitude > self.MAX_SPEED:
            x_comp /= vector_magnitude
            y_comp /= vector_magnitude

            x_comp *= self.MAX_SPEED
            y_comp *= self.MAX_SPEED

        return (x_comp, y_comp)
Example #3
0
    def sum_sensors(self, prey_list, predator_list):
        vectors = []

        prey_pos_vector = self.get_closest_prey_position(prey_list)
        vectors.append(
            util.multiply_vector(prey_pos_vector, self.PREY_POS_WEIGHT))

        prey_vel_vector = self.get_closest_prey_velocity(prey_list)
        vectors.append(
            util.multiply_vector(prey_vel_vector, self.PREY_VEL_WEIGHT))

        vectors.append(util.multiply_vector(self.edge_repulsion_sensor(), 100))

        print vectors

        print """Prey_Pos: {}
        Prey_Vel: {}
        Repulsion: {}""".format(*vectors)

        x_comp = 0
        y_comp = 0

        for x, y in vectors:
            x_comp += x
            y_comp += y

        vector_magnitude = util.vector_magnitude((x_comp, y_comp))

        if vector_magnitude > self.MAX_SPEED:
            x_comp /= vector_magnitude
            y_comp /= vector_magnitude

            x_comp *= self.MAX_SPEED
            y_comp *= self.MAX_SPEED

        return (x_comp, y_comp)