ASCII Borromeanリング


24

ボロメオリングはそれらのいずれかの除去は、他の2つのリンクを解除するようなリンクされ、3つの円の好奇心セットです。

ここに画像の説明を入力してください

カップル用の輪ゴムとバインダーリングで自分用のセットを作ることができます。輪ゴムが増えれば、ブルニアンリンクを簡単に作成できます。

Borromeanリングのこのascii-art表現を出力(出力または出力)するプログラムまたは関数を作成します。

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

行の末尾にはスペースがあり、末尾に改行がある場合があります。

バイト単位の最短コードが優先されます。


2
私はこれが原因のかなり難しい挑戦であることを言っているかの単純な予想される出力がある
ベータ崩壊

3
私は少しがっかりしています。課題は、整数サイズとそのサイズの出力リングを取ることだと考えました。
ブラックライトシャイニング

ええ、私もそう思いました(プログラムはintを入力として受け取り、その数のコンポーネントでBrunnian Linkを描画しますが、それは一意ではなく、おそらく多くの交差点ですか?)。プログラムのようなものは、実際に検索しなければならないでしょう(あるいは少なくとも試行錯誤では-これらのリングが連動し、私は1つを削除する場合は、自由に行くのですか?)だけではなく、固定の絵を描くの...
アレクセイ

回答:


7

CJam、53 51 50 49バイト

単純な古いベース変換...

"FÓîÞ¤ÛY­ËB[¢O²êÍÓ
}²|äG"299b4b"+ -|"f=B/N*

すべての文字は拡張ASCII範囲(ASCIIコード1から255)であるため、文字数==バイト数です。

ここでオンラインで試して、ここで元のコードを入手してください


好奇心が強い、検索の改行はどこですか?
マルティセン

@マルティセン私はそれを持っていません。B/N*11文字で分割され、結合が改行になります
オプティマイザー

それはcooooolです。
マルティセン

6

Pyth-51バイト

私は誰かがこれをすぐに打ち負かすだろうと確信していますが、基本的な圧縮の答えは私が怠feelingだからです。まもなく真面目な答えを書きます。

s@L"
 +-|"jC" zB²;¶Ê ¿ïÁ»#-ÌClHõy%|ap"5

こちらからオンラインでお試しください

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

4

Pyth、49バイト

jbc11s@L"+ -|"jC"Tª]UʨWÕÝ_K¨}ÝÝ÷K¨Ý]Òê]UÕ*¡"4

デモンストレーション。

これは、ベース4エンコーディングを使用し、文字列を11分の1に切り分けてから、改行で再結合します。


3

ルビー、110

-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}

ストレートベース変換とは異なるもの。

ゴルフをしていない:

-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

ルビー、117バイト

勝てなかったが、私はそれがかわいいアプローチだと思った:

puts'    --
    |     |
--  |
|   | |   |
| -||
| | | | | |
| | -|
| |   | |
-||
  |     |
  --'.gsub /-./,'+\0---+ '

2

BrainFuck、361バイト

以下に、BrainFuckの小さなプログラムを示します。文字ごとに印刷するだけです。

+++++++++[->>>>++++++++++++++<+++++<+++++<++++<]>----....>--.>.....>-->++++++++++<<<.>>>.<<<<....>>>.<<<.....>>>.>.<<<.>.....<.<...>>>.>.<.<<<...>>>.<<<.>>>.<<<...>>>.>.<.<<<.>.>.>.<...<.<.>>>.>.<.<<<.>>>.<<<.>>>.<<<.>>>.<<<.>>>.<<<.>>>.>.<.<<<.>>>.<<<.>.>.>.<...<.>>>.<.<<<.>>>.<<<...>>>.<<<.>>>.>.<<<.>.>.<...<.<.>>>.>.<<<<..>>>.<<<.....>>>.>.<<<<..>.>.....<.

1

Staq、109文字

&iiiqi{1" "}{211}{c"| "}{fcc}{o"+-|"}{p"+--"}{r"---+"}{ec;}22pr;22c22epr21ec2f2ecor1effcefor;f2ceor1e2c22e2pr

出力:

Executing D:\codegolf\Staq borromean rings.txt

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

Execution complete.
>

0

Python 3、139バイト

これは実際に印刷せずに直接印刷するのに最も近い(134バイトになります)...これ以上短くする方法がわかりません。

a='+-----+'
b='+-|---+'
c=' '*4
d='| '
e=c+d
print(c+a,e*2,a+e[1:],"|   | "*2,d+b+" |",d*6,d+d+b,"| |   "*2,b+" |",e[2:]+e,"  "+a,sep='\n')
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.