Spielen wir Tennis 2: Ost-West-Spiel


10

Es gibt eine Herausforderung Lass uns Tennis spielen von Daniel . Er schlägt vor, ein Gericht in Nord-Süd-Richtung zu platzieren. Mein Vorschlag ist, einen Platz zu schaffen, um auch in Ost-West-Richtung Tennis zu spielen.

Sie müssen einen Tennisplatz drucken, aber aus vertraulichen Gründen müssen Sie dies in möglichst wenigen Bytes tun.

Tennisplatz

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

Ursprüngliche Regeln sind:

  • Keine zusätzlichen Leerzeichen.
  • Keine Tabs, da sie unfair wären.
  • Eine optionale nachfolgende Newline ist zulässig.

Dies ist , also gewinnt der kürzeste Code in Bytes!

Antworten:


6

Leinwand , 13 12 Bytes

«ω↕9:gW:tC‟┼

Quad-Palindromisiert eine komprimierte Ecke des Feldes .

Probieren Sie es hier aus!

11 Bytes mit Großbuchstaben Xunter Verwendung der Tatsache, dass eine /bessere Komprimierung als xund eine Palindromisierung zu Überlappungen /und deren Spiegelung führen würden \, was zu einer Überlappung führtX


1
Als ich diese Frage zum ersten Mal sah, dachte ich: "Habe ich jetzt genug Zeit, um Leinwand zu lernen und dann eine Lösung zu veröffentlichen?" Offensichtlich nicht: P
Quintec

10

Python 2 , 59 Bytes

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

Probieren Sie es online aus!

Druckt die erste Hälfte der Zeichenfolge, gefolgt von der Rückseite. Es ist langweilig, aber effizient. Ich habe versucht, sich wiederholende Teile herauszuholen s, insbesondere die -, fand aber nichts kürzeres.


Python 2 , 59 Bytes

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

Probieren Sie es online aus!

Mit Jo Kings Konstruktion .


Python 2 , 62 Bytes

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

Probieren Sie es online aus!

Druckt die erste Hälfte jeder Zeile 'x', gefolgt von der ersten umgekehrten Hälfte.


7

Holzkohle , 15 Bytes

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

Probieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Zur Erklärung werde ich das Ergebnis nach jedem der Zeichenbefehle bis zur endgültigen Reflexion zeigen:

↑²        |
          |

     ------
←⁶        |
          |

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

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

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







1

Python 2 , 69 68 66 Bytes

-2 danke an Jo King

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

Probieren Sie es online aus!

Wir Zyklus die folgenden drei Muster unendlich (6 - mal ist ausreichend für unsere Zwecke unendlich) und Scheibe aus den ersten 6 Zeichen jedes: -, | , und | |--. Um den Tennisplatz zu bekommen, verketten wir eine xund die Rückseite jeder Linie.



1

MBASIC , 82 Bytes

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

Durch den Missbrauch der WIDTH-Direktive habe ich ungefähr 20 Bytes gespart.



1

05AB1E , 25 24 Bytes

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

Probieren Sie es online aus.

25 24 Bytes Alternative:

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

Probieren Sie es online aus.

Erläuterung:

"\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)

Sehen Sie diese 05AB1E Spitze Mine (Abschnitt Wie große natürliche Zahlen zu komprimieren? ) Zu verstehen , warum •L®y[Â-Γ•ist 5960566858660563und •B°”Ñ•ist 193812448.

Dank des ASCII-Art-Generators von @MagicOctopusUrn für •L®y[Â-Γ•5BžLR"\n -x|"‡und •B°”Ñ•3BžLR" -|"‡, nach dem das Transliterat durch Vertauschen der Nummer und der Zeichenfolge auf dem Stapel weiter ausgebaut wurde, verwenden Sie вanstelle von Bund indizieren Sie mit in die Zeichenfolge mit è.




0

V , 25 Bytes

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

Probieren Sie es online aus!

Hexdump:

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

Hier war mein Prozess:

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

Alternative Version:

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

Pyth , 32 Bytes

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

Probieren Sie es hier online aus . Der obige Code enthält einige ungerade Zeichen, sodass das Kopieren / Einfügen wahrscheinlich nicht funktioniert.

Druckt die erste Hälfte des Musters, gefolgt von der Rückseite ohne die Mitte 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 Bytes

-1 Bytes danke @AdmBorkBork

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

1
59 Bytes zu tun[0,1+2..0]
AdmBorkBork


0

C # (.NET Core) , 88 Byte

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

Probieren Sie es online aus!

Ungolfed:

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

 


Hier ist eine alternative Möglichkeit, dies mit einer anonymen Funktion zu tun, die auf der Antwort von adrianmp aus dem ersten Let's Play Tennis-Thread basiert :

C # (.NET Core) , 88 Byte

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

Probieren Sie es online aus!

Ungolfed:

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

0

K4 , 36 35 Bytes

Lösung:

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

Beispiel:

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

Erläuterung:

Wir möchten eine Liste von Indizes in das Array generieren "x-| ", z

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

Um dies zu erzeugen, können wir die Basis-4-Darstellung des Flip dieser Zahlen nehmen. Dies gibt uns:

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

Wir können die unterschiedlichen Werte und Indizes an den von uns benötigten Indizes übernehmen:

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

Dieses 1 0 0 1 2 2 3 2 2 1 0 0 1in Base-4 konvertierte Array ist

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

Für die Lösung machen wir diese Schritte nur in umgekehrter Reihenfolge.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.