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.