想象一下,一个矩形的|
字符网格代表织机(经线)上的绷紧线,其他线(纬线)(我们将其表示为-
)可以被编织。
这是7×4织机的不织布经线:
|||||||
|||||||
|||||||
|||||||
纬纱有多种编织方法,最简单的是平纹编织。
在平织的第一行中,纬纱从第一个经线开始,然后在第二根线之下,然后在第三根线之上,然后在第四根线之下,依此类推。
第二纬线与第一纬线相同,但向右偏移一个经线,因此它从下面开始,然后翻过来,依此类推。
在我们的7×4织机上,平纹组织如下所示:
-|-|-|-
|-|-|-|
-|-|-|-
|-|-|-|
我们可以说,纬越过经描述平纹1时,然后在1点时,后续的每一行移位1串的右端。
可以通过使纬纱经过经纬v次,然后经过u次,随后的每一行向右移动s串来描述广义的编织。(所有值都是整数,s可以为0或负数,u和v必须为非负数。)
v = 1,u = 2,s = 2的7×4织布机,一种斜纹编织:
-||-||-
||-||-|
|-||-||
-||-||-
挑战
您的任务是编写最短的程序(以字节为单位),该程序在给定v,u,s,织机的宽度和高度以及初始偏移的情况下产生条形和虚线的编织图案。
所述初始位移是串在纬纱中的第一行被向右移动(0在上面的例子)的数量。随后的每一行将移动s个以上的字符串。
您的程序应以易于使用的格式(标准输入,函数调用等)接受这6个数字,并将条形和矩形的编织网格输出到标准输出。您可以假设所有输入均有效。(所有值都是整数,宽度和高度必须为正,初始移位可以为任意值。)
例子
宽度= 5,高度= 4,初始位移= 0,v = 1,u = 3,s = -2:
-|||-
||-||
-|||-
||-||
宽度= 5,高度= 4,初始位移= 3,v = 1,u = 3,s = -2:
|||-|
|-|||
|||-|
|-|||
宽度= 5,高度= 4,初始位移= 1,v = 1,u = 1,s = 0:
|-|-|
|-|-|
|-|-|
|-|-|
宽度= 5,高度= 4,初始位移= 0,v = 1,u = 0,s = 0:
-----
-----
-----
-----
笔记
- 图案总是从网格左上角的经纱上的纬线开始(除非最初已移动)。
- 所有的纬纱都从左侧进来。他们不会像这样盘旋。
- u + v不一定是网格宽度的倍数。
- u和v可能都不都是0