Skip to content

lunaticusz/tile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задача

Дан прямоугольник (класс Tile), внутри которого могут располагаться другие прямоугольники (класс Block). Необходимо заполнить пустое пространство новыми прямоугольниками (класс Block). Заполнение необходимо производить в направлении сверху вниз, слева направо.

На рисунке ниже приведен пример.

Пример

Синие прямоугольники - это прямоугольники начального заполнения, зеленые - найденные прямоугольники. Номера внутри зеленых прямоугольников - порядок заполнения.

Пример использования

Прямоугольник с начальным заполнением.

$blocks = [
    new Block(0, 15, 200, 105),
    new Block(200, 40, 50, 30),
    new Block(110, 120, 65, 70),
];
$tile = new Tile(250, 400, $blocks);
$newBlocks = $tile->getNewBlocks();

Класс Tile - это класс основного прямоугольника, который необходимо заполнить.

Класс Block используется для определения прямоугольников заполнения.

Прямоугольник без начального заполнения.

$tile = new Tile(250, 400);
$newBlocks = $tile->getNewBlocks();

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages