def generate_parameters(
        self,
        x: np.ndarray,
        y: np.ndarray | None = None,
    ) -> list[tuple[AdversarialObject | None, int | None]]:
        """
        Generate adversarial parameters for given images.

        :param x: Images to attack as a tensor (NRGB = (1, ...))
        :param y: Correct classes
        :return: List of tuples of adversarial objects and predicted class.
        """
        result = []
        for image_index in range(x.shape[0]):
            laser_params, adv_class = self._generate_params_for_single_input(
                x[image_index], y[image_index] if y is not None else None
            )
            result.append((laser_params, adv_class))
        return result

        Generate adversarial parameters for given images.

        :param x: Images to attack as a tensor (NRGB = (1, ...))
        :param y: Correct classes
        :return: List of tuples of adversarial objects and predicted class.
        
art/attacks/evasion/laser_attack/laser_attack.py