테니스 2 : 동서 게임을 해보자


10

도전 도전이 있습니다 Daniel 의 테니스치자 . 그는 남북 방향으로 법정을 둘 것을 제안합니다. 제 제안은 동서 방향으로 테니스를하기 위해 코트를 만드는 것입니다.

테니스 코트를 인쇄해야하지만 기밀로 인해 가능한 한 적은 바이트로 인쇄해야합니다.

테니스 코트

------x------
|  |  x  |  |
|  |--x--|  |
|  |  x  |  |
------x------

원래 규칙은 다음과 같습니다.

  • 추가 공간이 없습니다.
  • 불공평 한 탭은 없습니다.
  • 하나의 선택적 후행 줄 바꿈이 허용됩니다.

이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!

답변:



10

파이썬 2 , 59 바이트

s="------x------\n|  |  x  |  |\n|  |--x"
print s+s[-2::-1]

온라인으로 사용해보십시오!

문자열의 첫 번째 절반을 인쇄 한 다음 그 반대를 인쇄합니다. 지루하지만 효율적입니다. out의 반복되는 부분 s, 특히의 추출을 시도했지만 -더 짧은 것을 찾지 못했습니다.


파이썬 2 , 59 바이트

for n in 6,0,2,0,6:x='-'*n+'  |  |'[n:];print x[::-1]+'x'+x

온라인으로 사용해보십시오!

사용 조 왕의 건설 .


파이썬 2 , 62 바이트

b='|  '*2
for r in'-'*6,b,'|  |--',b,'-'*6:print r+'x'+r[::-1]

온라인으로 사용해보십시오!

각 줄의 첫 번째 절반을 인쇄하고 'x'그 다음에 첫 번째 절반을 뒤집습니다.


7

, 15 바이트

↑²←⁶↓xx→x²↑²‖O¬

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명을 위해 각 드로잉 명령 후 최종 반영까지의 결과를 보여줍니다.

↑²        |
          |

     ------
←⁶        |
          |

    x------
↓xx x     |
          |

    x------
→x² x     |
    x--   |

    x------
↑²  x  |  |
    x--|  |



2

파이썬 3, 75 바이트

s='-'*6;p='|  |';w=s+'x'+s;a=p+'  x  '+p;print(w,a,p+w[4:9]+p,a,w,sep='\n')

아마 골프를 타기-나는 정말로 kolmogorov- 시도한 적이 없다 도전을 .

온라인으로 사용해보십시오!

파이썬 2에서는 76 바이트 까지 얻을 수 있습니다.

s='-'*6;p='|  |';w=s+'x'+s;a=p+'  x  '+p
for i in w,a,p+w[4:9]+p,a,w:print i




1

파이썬 2 , 69 68 66 바이트

Jo King 덕분에 -2

for l in"-","|  ","|  |--","|  ","-":l*=6;print l[:6]+"x"+l[5::-1]

온라인으로 사용해보십시오!

: 우리주기 무한히 세 가지 패턴을 다음 각각의 첫 6 자 해제 및 조각 (6 시간은 충분히 우리의 목적을 위해 무한) -, | | |--. 그런 다음 테니스 코트를 얻기 위해 x각 줄의 반대를 연결합니다 .



1

MBASIC , 82 바이트

1 WIDTH 13:PRINT"------x------|  |  x  |  ||  |--x--|  ||  |  x  |  |------x------

WIDTH 지시문을 남용하면 약 20 바이트가 절약되었습니다.



1

05AB1E , 25 24 바이트

"
 -x|"•L®y[Â-Γ•5вèJ.º.∊

온라인으로 사용해보십시오.

25 24 바이트 대안 :

… -|•B°”Ñ•3вèJ3ä'x«».º.∊

온라인으로 사용해보십시오.

설명:

"\n -x|"       # Push string "\n -x|"
L®y[Â-Γ•      # Push compressed number 5960566858660563
         5в    # Converted to Base-5 as list: 
               #  [2,2,2,2,2,2,3,0,4,1,1,4,1,1,3,0,4,1,1,4,2,2,3]
è              # Index each digit into the string
 J             # And join the list together
               #  "\n -x|" and [2,2,2,2,2,2,3,0,4,1,1,4,1,1,3,0,4,1,1,4,2,2,3]
               #   → "------x\n|  |  x\n|  |--x"
             # Intersect mirror everything horizontally
  .∊           # Intersect mirror everything vertically (and output implicitly)

 -|           # Push string " -|"
B°”Ñ•         # Push compressed integer 193812448
      3в       # Converted to Base-3 as list: [1,1,1,1,1,1,2,0,0,2,0,0,2,0,0,2,1,1]
è              # Index each digit into the string
 J             # And join the list together
               #  " -|" and [1,1,1,1,1,1,2,0,0,2,0,0,2,0,0,2,1,1]
               #   → "------|  |  |  |--"
3ä             # Split the string into three parts: ["------","|  |  ","|  |--"]
  'x«         '# Append an "x" to each: ["------x","|  |  x","|  |--x"]
     »         # Join by newlines: "------x\n|  |  x\n|  |--x"
             # Intersect mirror everything horizontally
  .∊           # Intersect mirror everything vertically (and output implicitly)

내 (섹션이 05AB1E 팁을 참조하십시오 어떻게 큰 정수를 압축하는 방법을? ) 이유를 이해하는 •L®y[Â-Γ•것입니다 5960566858660563하고 •B°”Ñ•있다193812448 .

감사 @MagicOctopusUrn 의 ASCII 아트 생성•L®y[Â-Γ•5BžLR"\n -x|"‡•B°”Ñ•3BžLR" -|"‡음역이 스택의 숫자 및 문자열을 교환하여 상기 golfed 된 후에는, 사용하는 в대신 B가진 문자열로하고, 인덱스 è.




0

V , 25 바이트

13é-Äï5I  |<esc>ÄÙ4l5r-Îd^ãrx

온라인으로 사용해보십시오!

16 진 덤프 :

00000000: 3133 e92d c4ef 3549 2020 7c1b c4d9 346c  13.-..5I  |...4l
00000010: 3572 2dce 645e e372 78                   5r-.d^.rx

내 과정은 다음과 같습니다.

13é-Äï5I  |<esc>3<<ÄÙ4l5r-Gã<C-v>ërx
13é-Äï5I  |<esc>3<<ÄÙ4l5r-Î7|rx
13é-Äï5I  |<esc>3<<ÄÙ4l5r-Îãrx
13é-Äï5I  |<esc>ÄÙ4l5r-Îd^ãrx

대체 버전 :

5I  |<esc>5ÄM4l5r-HÒ-G.Îxxãrx

16 진 덤프 :

00000000: 3549 2020 7c1b 35c4 4d34 6c35 722d 48d2  5I  |.5.M4l5r-H.
00000010: 2d47 2ece 7878 e372 780a                 -G..xx.rx.



0

Pyth , 32 바이트

t_ps@L"x-
| "jC"??ôkË7"5

여기에서 온라인으로 사용해보십시오 . 위의 코드에는 이상한 문자가 포함되어 있으므로 복사 / 붙여 넣기가 작동하지 않을 수 있습니다.

패턴의 첫 번째 절반을 인쇄 한 다음 가운데없이 반전시킵니다 x.

t_ps@L"x-\n| "jC"..."5   Note newline replaced with \n, encoded string replaced with ...

               C"..."    Convert encoded string to base 256 number 727558509253668163499780
              j      5   Convert to base 5, yields [1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 2, 3, 4, 4, 3, 4, 4, 0, 4, 4, 3, 4, 4, 3, 2, 3, 4, 4, 3, 1, 1, 0]
    @L                   Map each of the above to...
      "x-\n| "           ... [x, -, newline, |, space]
   s                     Concatenate into string
  p                      Print without newline
 _                       Reverse
t                        All but first character, implicit print

0

Powershell, 60 59 바이트

-1 바이트 덕분에 @AdmBorkBork

('------x------','|  |  x  |  |','|  |--x--|  |')[0,1+2..0]

1
59 바이트[0,1+2..0]
AdmBorkBork


0

C # (. NET 코어) , 88 바이트

string a="------x------\n",b="|  |  x  |  |\n";Console.Write(a+b+"|  |--x--|  |\n"+b+a);

온라인으로 사용해보십시오!

언 골프 드 :

string a = "------x------\n",
       b = "|  |  x  |  |\n";
Console.Write(a + b + "|  |--x--|  |\n" + b + a);

 


adrianmp의 답변을 기반으로 익명의 기능을 사용하는 다른 방법이 있습니다.첫 번째 Let 's Play Tennis 스레드의 을 같습니다.

C # (. NET 코어) , 88 바이트

()=>{string a="------x------\n",b="|  |  x  |  |\n";return(a+b+"|  |--x--|  |\n"+b+a);};

온라인으로 사용해보십시오!

언 골프 드 :

() =>
{
    string a = "------x------\n",
           b = "|  |  x  |  |\n";
    return(a + b + "|  |--x--|  |\n" + b + a);
};

0

K4 , 36 35 바이트

해결책:

"x-| "@4\:509 425 477 0@4\:17218113

예:

q)k)"x-| "@4\:509 425 477 0@4\:17218113
"------x------"
"|  |  x  |  |"
"|  |--x--|  |"
"|  |  x  |  |"
"------x------"

설명:

배열에 인덱스 목록을 생성하려고합니다 "x-| ". 예 :

1 1 1 1 1 1 0 1 1 1 1 1 1
2 3 3 2 3 3 0 3 3 2 3 3 2
2 3 3 2 1 1 0 1 1 2 3 3 2
2 3 3 2 3 3 0 3 3 2 3 3 2
1 1 1 1 1 1 0 1 1 1 1 1 1

이것을 생성하기 위해 우리는이 숫자들의 뒤집기의 기본 4 표현을 취할 수 있습니다. 이것은 우리에게 :

425 509 509 425 477 477 0 477 477 425 509 509 425

필요한 지수에서 고유 한 값과 색인을 취할 수 있습니다.

q)509 425 477 0@1 0 0 1 2 2 3 2 2 1 0 0 1
425 509 509 425 477 477 0 477 477 425 509 509 425

1 0 0 1 2 2 3 2 2 1 0 0 1base-4로 변환 된 이 배열 은

q)k)4/:1 0 0 1 2 2 3 2 2 1 0 0 1
17218113 

따라서 솔루션의 경우 이러한 단계를 반대로 수행합니다.

"x-| "@4\:509 425 477 0@4\:17218113 / the solution
                        4\:17218113 / convert 17218113 into base-4
          509 425 477 0@            / index (@) into 509 425 477 0
       4\:                          / convert to base-4
"x-| "@                             / index (@) into "x-| "

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.