首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASCII Borromean环

ASCII Borromean环
EN

Code Golf用户
提问于 2015-07-20 02:27:05
回答 9查看 2.4K关注 0票数 27

博罗米氏环是一个由三个圆圈组成的奇怪的集合,它们相互连接,因此删除其中的任何一个就会断开另外两个圆的链接:

你可以用几根橡皮筋和一个粘结环为自己做一套。有了更多的橡皮筋,就很容易制造出任何布鲁纳链

编写一个程序或函数,输出(打印或返回)这是Borromean环的艺术表示:

代码语言:javascript
复制
    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

这些线可能有尾随空格,并且可能有一个尾随换行符。

以字节为单位的最短代码获胜。

EN

回答 9

Code Golf用户

发布于 2015-07-20 03:27:30

Pyth-51字节

我肯定有人会打得这么快,但只是一个基本的压缩答案,因为我觉得很懒。我很快就会试着写一个严肃的答案。

代码语言:javascript
复制
s@L"
 +-|"jC" zB²;¶Ê ¿ïÁ»#-ÌClHõy%|ap"5

在网上试试

代码语言:javascript
复制
s              Reduce on string concatenation
 @L            Map second arg to index first arg
  "..."        String of all chars (Pyth allows literal newlines)
  j            Base conversion to list
   C           Base conversion 256 -> 10
    "..."      Base 256 string
   5           To Base 5
票数 6
EN

Code Golf用户

发布于 2015-07-20 10:18:18

Pyth,49字节

代码语言:javascript
复制
jbc11s@L"+ -|"jC"Tª]UʨWÕÝ_K¨}ÝÝ÷K¨Ý]Òê]UÕ*¡"4

游行示威。

这使用基4编码,并将字符串拆分为十一个,然后在换行符上重新加入它们。

票数 4
EN

Code Golf用户

发布于 2015-07-20 11:06:22

Ruby,110

代码语言:javascript
复制
-2.upto(8){|i|s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9
6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}
puts s}

与直碱基转换不同的东西。

未高尔夫球:

代码语言:javascript
复制
-2.upto(8){|i|                                           #for each line
  s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9                    #load s with "+-----+" (if required!) padded appropriately with leading spaces and with nine trailing spaces.   
  6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}   #replace characters with | as necessary, according to the 6-bit number encoded by each character in the magic string.
  puts s}                                                #print the line.
票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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