Резюме
Цель этой проблемы заключается в создании отмененным образом-версии 15-головоломки / скользящей головоломка также называется taquin на французском.
Детали:
Учитывая вход состоит из:
- изображение,
- целое число
n, - другое целое число
r,
Ваша программа, или функция, или что-либо еще, что подходит, должны выводить то же изображение ( то есть тот же размер и формат), что и входные данные, но подверглось следующему процессу:
- разделить изображение на
n²прямоугольники, - удалить один из этих прямоугольников, случайно,
- переместите случайное число смежных прямоугольников из строки / столбца, на который воздействует точка (2.), чтобы созданное отверстие было заполнено, и в этой строке / столбце было сгенерировано еще одно. Это число может быть,
0если пробел находится в углу или на краю.
Повторите (3.) rраз.
Разъяснения:
- Если вы переместили прямоугольники со строки на шаге (3.), вы должны переместить прямоугольники со столбца в следующем повторении,
- если вы переместили прямоугольники слева направо на шаге строки, они должны быть перемещены справа налево на следующем шаге строки, то же самое для столбцов сверху вниз и снизу вверх относительно столбцов,
- Вы можете предположить, что
nбудет выбрано таким образом, чтобы он разделял длины сторон изображения.
Последний пункт:
Анимированные .gifпоказы всего процесса очень приветствуются.
Я предлагаю использовать следующую картинку (которая есть 1024x768), n=16и r=100в качестве модели вы можете использовать любую другую картинку (если она, конечно, актуальна и соответствует правилам SE).
Обратите внимание, что применяются стандартные правила лазеек .
Это код-гольф , поэтому выигрывает более короткая подача!
Так как пример был запрошен, вот один, сделанный «вручную», с n=4иr=1
Шаги 1 и 2
Шаг 3 : по линии, 2 прямоугольника слева
move a random number of contiguous rectanglesэто может быть 0 прямоугольников? (было бы



