Есть 2 массива шаров. У каждого шара есть цвет (синий или красный) и номер. В обоих массивах присутствуют шары обоих цветов. Необходимо реализовать функцию, которая будет на вход принимать оба набора шаров, а возвращать - количество синих шаров без повторяющихся номеров.
Реализация шаров:
enum Color {
case RED;
case BLUE;
}
final class Ball {
private static $instances = [];
private function __construct(public readonly Color $color, public readonly int $number)
{
}
public static function instance(Color $color, int $number): self
{
if (!isset(self::$instances[$color->name][$number])) {
self::$instances[$color->name][$number] = new self($color, $number);
}
return self::$instances[$color->name][$number];
}
}