首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >旋转钻石瓷砖

旋转钻石瓷砖
EN

Code Golf用户
提问于 2015-06-25 15:31:32
回答 1查看 581关注 0票数 21

任何普通的六边形都可以用钻石打,例如(从这个问题偷来的):

代码语言:javascript
代码运行次数:0
运行
复制
   ______
  /_/_/\_\
 /_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
 \_\/_/\_\/
  \_\_\/_/

我们将考虑上面的一块1码的瓷砖(因为钻石的两边是一个/或\每个)。同样的2码瓷砖看起来应该是:

代码语言:javascript
代码运行次数:0
运行
复制
      ____________
     /   /   /\   \
    /___/___/  \___\
   /   /\   \  /\   \
  /___/  \___\/  \___\
 /\   \  /   /\  /   /\
/  \___\/___/  \/___/  \
\  /   /\   \  /   /\  /
 \/___/  \___\/___/  \/
  \   \  /   /\   \  /
   \___\/___/  \___\/
    \   \   \  /   /
     \___\___\/___/

你的任务是旋转钻石倾斜倍数为60度。输入中的菱形镶嵌可以是任意大小的(并且在输入中没有显式指定大小)。但是它永远是一个有效的瓷砖,六边形的所有侧面都有相同的长度。

以下是上述按顺时针方向旋转60度的例子:

代码语言:javascript
代码运行次数:0
运行
复制
   ______
  /_/\_\_\
 /\_\/_/\_\
/\/_/\_\/_/\
\/\_\/_/_/\/
 \/_/\_\_\/
  \_\/_/_/

      ____________
     /   /\   \   \
    /___/  \___\___\
   /\   \  /   /\   \
  /  \___\/___/  \___\
 /\  /   /\   \  /   /\
/  \/___/  \___\/___/  \
\  /\   \  /   /   /\  /
 \/  \___\/___/___/  \/
  \  /   /\   \   \  /
   \/___/  \___\___\/
    \   \  /   /   /
     \___\/___/___/

输入是一个非负整数和菱形镶嵌.您的程序(或函数)应该将其旋转为整数* 60度。你决定是顺时针旋转还是逆时针旋转,只要是一致的。输入和输出都不应该有额外的前导或尾随空格。

这是暗号高尔夫。最短代码获胜。

相关问题:

EN

回答 1

Code Golf用户

发布于 2016-07-15 23:53:02

Pyth,81字节

代码语言:javascript
代码运行次数:0
运行
复制
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=i+j−k
  • V=j−3⋅i + 5⋅k

则输出字符为

  • \,如果输入在(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处有\;否则
  • 空格。

(我们不计算半整数索引中的字符。)

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/52220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档