摘要
这项挑战的目标是创建一个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个矩形吗?(当空白处在边缘/角落时,使程序更改行为会很痛苦)