ASCII Borromean 반지


24

Borromean 반지는 그 중 하나의 제거가 다른 두 해제됩니다 링크 된 세 개의 원의 호기심 세트입니다 :

여기에 이미지 설명을 입력하십시오

고무 밴드와 바인더 링으로 자신을위한 세트를 만들 수 있습니다 . 고무 밴드가 많을수록 Brunnian 링크를 쉽게 만들 수 있습니다.

Borromean 반지의이 아스키 아트 표현을 출력 (인쇄 또는 반환)하는 프로그램 또는 함수를 작성하십시오.

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

줄에 후행 공백이있을 수 있으며 후행 줄 바꿈이있을 수 있습니다.

바이트 단위의 가장 짧은 코드가 이깁니다.


2
예상되는 결과물이 얼마나 단순 하기 때문에 이것이 어려운 도전이라고 말할 수 있습니다.
Beta Decay

3
조금 실망했습니다. 문제는 정수 크기와 해당 크기의 출력 링을 사용하는 것입니다.
Blacklight Shining

네, 그렇게 생각했습니다 (프로그램은 입력으로 int를 가져 와서 많은 구성 요소로 Brunnian Link를 그립니다.하지만 고유하지는 않습니다. 프로그램의 종류는 실제로 검색해야 할 것이다 (또는 적어도 시행 착오에를 -이 반지 연동 내가 하나를 제거하면 무료로 가야합니까?) 대신 고정 그림 그리기의 ...
알렉세이

답변:


7

CJam, 53 51 50 49 바이트

평범한 기본 변환 ...

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

모든 문자는 확장 ASCII 범위 (ASCII 코드 1-255)에 있으므로 문자 수 == 바이트 수입니다.

여기에서 온라인으로 시도 하고 원래 코드를 얻으 십시오.


궁금한 점은 조회에서 줄 바꿈이 어디에 있습니까?
Maltysen

@ Maltysen이 없습니다. B/N*11 자로 나누고 조인 개행
Optimizer

그것은 coooool입니다.
Maltysen

6

Pyth-51 바이트

나는 누군가가 이것을 빨리 이길 것이라고 확신하지만, 단지 기본 압축 답변 cuz입니다. 게으른 느낌입니다. 나는 곧 심각한 답변을 쓰려고 노력할 것이다.

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 인코딩을 사용하고 문자열을 elevenths로 자른 다음 줄 바꿈으로 다시 결합합니다.


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 프로그램이며 char로만 char를 인쇄합니다.

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

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

파이썬 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.