25 lines
526 B
PHP
25 lines
526 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Captcha\Dto;
|
|
|
|
final class Sectors
|
|
{
|
|
private array $points = [];
|
|
|
|
public function add(int|float $x, int|float $y, int|float $width, int|float $height): self
|
|
{
|
|
$this->points[] = new Sector((int) $x, (int) $y, (int) $width, (int) $height);
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function random(): Sector
|
|
{
|
|
$key = array_rand($this->points);
|
|
$sector = $this->points[$key];
|
|
unset($this->points[$key]);
|
|
|
|
return $sector;
|
|
}
|
|
}
|