Juguemos tennis 2: juego este-oeste

10

Hay un desafío Juguemos al tenis de Daniel . Propone colocar un tribunal en dirección norte-sur. Mi propuesta es crear una cancha para jugar tenis en la dirección este-oeste también.

Debe imprimir una cancha de tenis, pero debe hacerlo en la menor cantidad de bytes posible debido a razones confidenciales.

Pista de tenis

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

Las reglas originales son:

  • Sin espacios extra.
  • No hay pestañas ya que serían injustas.
  • Se permite una nueva línea final opcional.

Este es el , por lo que gana el código más corto en bytes.

mazzy
fuente

Respuestas:

6

Lienzo , 13 12 bytes

«ω↕9:gW:tC‟┼

quad-palindromiza una esquina comprimida del campo .

Pruébalo aquí!

11 bytes con mayúsculas X, usando el hecho de que /comprime mejor xy palindromizando daría lugar a la superposición /y su espejo \, lo que da como resultadoX

dzaima
fuente
1
Mira, mi pensamiento cuando vi esta pregunta por primera vez fue "¿tengo tiempo suficiente para aprender Canvas ahora y luego publicar una solución?" Evidentemente no: P
Quintec
10

Python 2 , 59 bytes

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

Pruébalo en línea!

Imprime la primera mitad de la cadena seguida de su reverso. Es aburrido pero eficiente. Traté de extraer partes repetidas de s, especialmente el -, pero no encontré nada más corto.


Python 2 , 59 bytes

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

Pruébalo en línea!

Usando la construcción de Jo King .


Python 2 , 62 bytes

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

Pruébalo en línea!

Imprime la primera mitad de cada línea, seguida de 'x', seguida de la primera mitad invertida.

xnor
fuente
7

Carbón de leña , 15 bytes

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

Pruébalo en línea! El enlace es a la versión detallada del código. A modo de explicación, mostraré el resultado después de cada uno de los comandos de dibujo hasta la reflexión final:

↑²        |
          |

     ------
←⁶        |
          |

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

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

    x------
↑²  x  |  |
    x--|  |
Neil
fuente
4

Python 3 , 65 62 bytes

for n in 7,0,3,0,7:x="-"*n+"|  "*5;print(x[6:0:-1]+'x'+x[1:7])

Pruébalo en línea!

Jo King
fuente
44
Ahora, este es el tipo de hechicería de corte de cadenas que pensé que debería tener una respuesta de Python a este desafío. ¡Bien jugado!
DLosc
2

Python 3, 75 bytes

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

Probablemente golfable: nunca antes había probado .

Pruébalo en línea!

En Python 2 pude llevarlo a 76 bytes

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
Quintec
fuente
1

Python 2 , 69 68 66 bytes

-2 gracias a Jo King

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

Pruébalo en línea!

Nos ciclo de los siguientes tres patrones infinitamente (6 veces es suficientemente infinita para nuestros propósitos) y el tramo de los 6 primeros caracteres de cada uno: -, | , y | |--. Luego, para obtener la cancha de tenis, concatenamos una xy el reverso de cada línea.

DLosc
fuente
1

MBASIC , 82 bytes

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

Abusar de la directiva WIDTH me ahorró alrededor de 20 bytes.

wooshinyobject
fuente
1

05AB1E , 25 24 bytes

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

Pruébalo en línea.

25 24 bytes alternativa:

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

Pruébalo en línea.

Explicación:

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

Vea esta sugerencia mía 05AB1E (sección ¿Cómo comprimir enteros grandes? ) Para comprender por qué •L®y[Â-Γ•es 5960566858660563y •B°”Ñ•es 193812448.

Gracias al generador de arte ASCII de @MagicOctopusUrn para •L®y[Â-Γ•5BžLR"\n -x|"‡y •B°”Ñ•3BžLR" -|"‡, después de lo cual, la transliteración se ha mejorado aún más al intercambiar el número y la cadena en la pila, usar en вlugar de Be indexar en la cadena con è.

Kevin Cruijssen
fuente
0

Chicle , 28 bytes

00000000: d3d5 0581 0a30 a9cb 55a3 a000 4415 60b2  .....0..U...D.`.
00000010: 06cc 03cb c179 0839 5d14 7d00            .....y.9].}.

Pruébalo en línea!

Logern
fuente
0

V , 25 bytes

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

Pruébalo en línea!

Hexdump:

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

Aquí estaba mi proceso:

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

Versión alternativa:

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.
James
fuente
0

Pyth , 32 bytes

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

Pruébelo en línea aquí . El código anterior contiene algunos caracteres extraños, por lo que copiar / pegar probablemente no funcionará.

Imprime la primera mitad del patrón, seguido de su reverso sin la central 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
Sok
fuente
0

Powershell, 60 59 bytes

-1 bytes gracias @AdmBorkBork

('------x------','|  |  x  |  |','|  |--x--|  |')[0,1+2..0]
mazzy
fuente
1
59 bytes para hacer[0,1+2..0]
AdmBorkBork
0

C # (.NET Core) , 88 bytes

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

Pruébalo en línea!

Sin golf:

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

 


Aquí hay una forma alternativa de hacerlo con una función anónima basada en la respuesta de adrianmp del primer hilo de Let's Play Tennis:

C # (.NET Core) , 88 bytes

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

Pruébalo en línea!

Sin golf:

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

K4 , 36 35 bytes

Solución:

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

Ejemplo:

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

Explicación:

Queremos generar una lista de índices en la matriz "x-| ", p. Ej.

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

Para generar esto, podemos tomar la representación en base 4 del giro de estos números. Esto nos da:

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

Podemos tomar los distintos valores e índices en los índices que requerimos:

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

Esta matriz 1 0 0 1 2 2 3 2 2 1 0 0 1convertida a base-4 es

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

Entonces, para la solución, solo estamos haciendo estos pasos a la inversa.

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