テニスをしよう2:東西ゲーム


10

チャレンジがありましょうプレイテニスダニエル。彼は南北方向に裁判所を置くことを提案します。私の提案は、東西方向にもテニスをするコートを作ることです。

テニスコートを印刷する必要がありますが、機密上の理由により、可能な限り少ないバイト数で印刷する必要があります。

テニスコート

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

元のルールは次のとおりです。

  • 余分なスペースはありません。
  • 不公平になるため、タブはありません。
  • 1つのオプションの末尾改行が許可されます。

これはなので、バイト単位の最短コードが優先されます!

回答:


6

キャンバス13 12 バイト

«ω↕9:gW:tC‟┼

quad-palindromize は、フィールドの圧縮されたコーナーです

ここでお試しください!

大文字のXesを含む11バイト。/圧縮率が高くx、パリンドロマイズすると、オーバーラップ/とそのミラー\が発生し、X


1
ほら、この質問を最初に見たときの私の考えは、「今すぐCanvasについて学び、それから解決策を投稿するのに十分な時間はありますか?」でした。明らかにそうではありません:P
Quintec、2018年

10

Python 2、59バイト

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

オンラインでお試しください!

文字列の前半を印刷し、その後にその逆を印刷します。退屈ですが効率的です。outの繰り返し部分s、特にを抽出しようとしましたが、-それより短いものは見つかりませんでした。


Python 2、59バイト

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

オンラインでお試しください!

ジョーキングの構造を使用します。


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







1

パイソン269の 68 66バイト

-2 Jo Kingに感謝

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

オンラインでお試しください!

:我々サイクル無限に3つのパターンを、次の各の最初の6つの文字を切り、スライス(6回は十分に我々の目的のために無限である)-| | |--。次に、テニスコートを取得するために、x各行のとの逆を連結します。



1

MBASIC、82バイト

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

WIDTHディレクティブの悪用により、約20バイト節約できました。



1

05AB1E25 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のアスキーアートジェネレータ•L®y[Â-Γ•5BžLR"\n -x|"‡•B°”Ñ•3BžLR" -|"‡、TRANSLITERATEは、スタック上の数値と文字列を交換することにより、さらにgolfedされた後、使用вの代わりにB、との文字列のインデックスè




0

V、25バイト

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

オンラインでお試しください!

Hexdump:

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

Hexdump:

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

0

JavaScript(Node.js)、76バイト

(a='----',A='|  |',b='--x--',B='  x  ')=>[p=a+b+a,q=A+B+A,A+b+A,q,p].join`
`

オンラインでお試しください!

  • 文字列の配列が許可されている場合は68バイト。

JavaScript(Node.js)、75バイト

_=>[p='x---',q='x|  ','x| -',q,p].map(c=>[...'1221330331221'].map(d=>c[d]))

オンラインでお試しください!

  • これは2Dの文字配列を出力します。さらにゴルフができるかどうかはわかりません。


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

C#(.NET Core)、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);

 


最初のLet's Play Tennisスレッドからのadrianmpの回答に基づいて、匿名関数でそれを行う別の方法を次に示します。

C#(.NET Core)、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

K436の 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

これを生成するために、これらの数値のフリップのbase-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 1をbase-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.