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;
 | 
						|
    }
 | 
						|
}
 |