已经证明,以下的13平方的Wang块总是不定期地对平面进行平铺。这意味着,当正方形排列成网格时,所有相邻边的颜色都相同,图案的平移将永远不会与其自身匹配。
我们将通过一个3×3网格以文本形式表示每个图块,该网格在中心和拐角处都填充有空格,数字1到5代替了边缘处的红色,绿色,蓝色,黄色,灰色。
2 2 2 1 1 1 4 3 2 2 4 3 2
1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4
3 2 3 2 3 2 1 2 1 4 1 2 2
目标
您的任务是编写一个程序,该程序接受宽度和高度,并输出具有这些尺寸的有效Wang网格。有效平铺是其中所有相邻平铺边缘均具有相同颜色(或编号)的平铺。以字节为单位的最小程序获胜。
您的输入应来自标准输入或命令行参数,输出应输入至标准输出。确切的输入格式可以是任何显而易见的格式,例如>>> wangtiler 3 2
。宽度和高度始终为正整数。
示例(宽度= 3,高度= 2)
请注意,当我们布置文本图块时,相邻边形成必要的冗余数字对:
1 2 1
2 11 22 1
2 3 2
2 3 2
4 55 55 4
1 2 2
(这不是正确的输出格式。)
我们可以水平和垂直压缩它们以获得:
1 2 1
2 1 2 1
2 3 2
4 5 5 4
1 2 2
此压缩格式是您必须使用的正确输出格式。奇数行必须包含其尾随空格。
图形奖金
程序可能没有输出文本输出,而是输出了平铺网格的图像。图形图块必须由四个以正方形排列的45-45-90三角形组成,并使用五种易于区分的颜色,如上面的图块。黑色边框不是必需的。图形图块的大小必须至少为32×32像素。没有对它们应用“压缩”。
奖励图片示例:(与上面的示例相同的网格)
奖金价值为负150字节。
笔记
- 您必须使用这套13个磁贴。
- 瓷砖可能不会旋转。
- 磁贴可以出现任何次数(包括完全没有出现)。
- 您可以假设可以进行任何尺寸的有效平铺。