任何普通的六边形都可以用钻石打,例如(从这个问题偷来的):
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
我们将考虑上面的一块1码的瓷砖(因为钻石的两边是一个/或\每个)。同样的2码瓷砖看起来应该是:
____________
/ / /\ \
/___/___/ \___\
/ /\ \ /\ \
/___/ \___\/ \___\
/\ \ / /\ / /\
/ \___\/___/ \/___/ \
\ / /\ \ / /\ /
\/___/ \___\/___/ \/
\ \ / /\ \ /
\___\/___/ \___\/
\ \ \ / /
\___\___\/___/
你的任务是旋转钻石倾斜倍数为60度。输入中的菱形镶嵌可以是任意大小的(并且在输入中没有显式指定大小)。但是它永远是一个有效的瓷砖,六边形的所有侧面都有相同的长度。
以下是上述按顺时针方向旋转60度的例子:
______
/_/\_\_\
/\_\/_/\_\
/\/_/\_\/_/\
\/\_\/_/_/\/
\/_/\_\_\/
\_\/_/_/
____________
/ /\ \ \
/___/ \___\___\
/\ \ / /\ \
/ \___\/___/ \___\
/\ / /\ \ / /\
/ \/___/ \___\/___/ \
\ /\ \ / / /\ /
\/ \___\/___/___/ \/
\ / /\ \ \ /
\/___/ \___\___\/
\ \ / / /
\___\/___/___/
输入是一个非负整数和菱形镶嵌.您的程序(或函数)应该将其旋转为整数* 60度。你决定是顺时针旋转还是逆时针旋转,只要是一致的。输入和输出都不应该有额外的前导或尾随空格。
这是暗号高尔夫。最短代码获胜。
相关问题:
发布于 2016-07-15 23:53:02
ju.es.e.reh|@s.e.e[yYykZ)bGCa+LV,t-y+k*3Y*5J-+kY/lG2Jc2j406610 4K"_/\\_\\"dKbGQ.z
逆时针旋转。
每个60°旋转使用以下算法执行。假设输入是一个六边形的k阶,所以它有2⋅k +1行和4⋅k列。若要在第i列j行查找旋转字符,请
则输出字符为
\
,如果输入在(u + 1)/2列(v +1)/2处有/
,则为/2;/
,如果输入在u/2列v/2或行u/2列(v +2)/2处有_
;否则_
,如果输入在(u + 2)/2列v/2或行(u + 1)/2列(v−1)/2处有\
;否则(我们不计算半整数索引中的字符。)
https://codegolf.stackexchange.com/questions/52220
复制相似问题