Cubo ASCII de Rubik


12

Inspirado por este y el siguiente chat:

Inspiración

Su tarea es generar lo siguiente:

   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/

Se permiten espacios en blanco iniciales o finales adicionales, siempre que no cambie la apariencia del cubo. Como de costumbre, se permite devolver lo anterior o una lista de cadenas de una función.

Este es el , por lo que la respuesta más corta en bytes gana.



3
Relacionado. (Así como, más tangencialmente, un par de otros desafíos que puede encontrar al buscar "mosaico de diamantes".)
Martin Ender

77
10 horas en el Sandbox (especialmente con un solo voto positivo) no es suficiente. Recomiendo esperar al menos 48 horas.
Dada

99
Para explicar mi voto negativo: Realmente no me gusta el desafío, porque la imagen está ocupando gran parte del espacio, y siento que estás intentando mostrar una imagen divertida más que hacer un buen desafío (aún más porque el patrón no es No es lo mismo que en la imagen) (y estoy bastante seguro de que esto atraerá algunos votos positivos de las personas que simplemente se rieron de la imagen). Además, "generar esta cadena exacta" con una cadena que se ve más o menos que esta se ha hecho varias veces, y no veo cómo su desafío es lo suficientemente diferente como para ser interesante.
Dada

44
@StephenS Di +1, pero no estoy de acuerdo en que puedas decir lo mismo para cualquier desafío de KC, cuando hago un desafío de KC me aseguro de hacer que el patrón sea algo complejo (para que el carbón no solo gane automáticamente), hago patrones más largos para que los idiomas que pueden manejar mejor los bucles tengan una oportunidad (como JS) y trato de usar cosas que algunos idiomas pueden haber incorporado como el alfabeto, los desafíos de KC difieren mucho, e intentar decir que todos son lo mismo toma algo lejos de la categoría.
LiefdeWen

Respuestas:



11

Carbón , 28 23 bytes

F³⁺⁺×\_³×\/⁻³ι¶ ‖M↑×_ ³

Pruébalo en línea! El enlace es a la versión detallada del código. No muy carbón, lo sé. No me di cuenta de que ‖M↓mueve el cursor deliberadamente, así que originalmente intenté F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³lo que no funcionó, porque estaba tratando de hacerlo al revés. Si quieres algo más de carbón, prueba G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³con 32 bytes: ¡ Pruébalo en línea!


6

Chicle , 35 bytes

00000000: 5350 5088 0741 2e05 05fd 7830 8ce1 82b3  SPP..A....x0....
00000010: 806c 0413 c889 8907 4330 8f4b 01c1 036a  .l......C0.K...j
00000020: 8671 00                                  .q.

Pruébalo en línea!


55
outgolfed in bubblegum 😲
Uriel

5

> <> , 97 94 93 89 bytes

">knknknk//>k>knknknk/>k>k>knknknkk>k>k>n>n>n>k>k>n>n>n>/k>n>n>n>//n/n/n///"01.
of-

Pruébalo en línea!

Edición 3: descubrí que puedes usar el carácter "" (ascii 25) - Ahora el proceso solo quita 15 de cada elemento de la pila e imprime. También se eliminaron las instrucciones direccionales adicionales y se reemplazaron todas con 1 movimiento (01.)



4

Cola, 99 bytes

#!/bin/tail -n+2
    _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/

1
Bienvenido a PPCG!
Stephen

O la #!/bin/sed 1dvariante
sch

4

Python 3 , 98 94 bytes

@KevinCruijssen sugirió esto ...

-4 bytes gracias a @HyperNeutrino y @WheatWizard

Solución de codificación de salida:

print(r"""   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/""")

Pruébalo en línea!

o 98 bytes:

print("   _ _ _\n  /_/_/_/\\\n /_/_/_/\/\\\n/_/_/_/\/\/\\\n\_\_\_\/\/\/\n \_\_\_\/\/\n  \_\_\_\/")

Pruébalo en línea!


Python 3 , 139 bytes

Dumb Python 3 Sumbmission no hardcoding, seguro que se puede jugar al golf. Sorprendentemente, comprimir las dos fors en un solo bucle es más largo:

p=print;p(' '*3+"_ "*3)
for i in range(3):p(abs(2-i)*' '+'/_'*3+'/'+i*"\/"+'\\')
for i in range(3):p(i*' '+'\\_'*3+'\\'+"/\\"*abs(2-i)+'/')

Pruébalo en línea!

Python 3 , 140 bytes

print(' '*3+"_ "*3,'\n'+'\n'.join(abs(2-i)*' '+'/_'*3+'/'+i*"\/"+'\\'if i<3else (i-3)*' '+'\\_'*3+'\\'+"/\\"*abs(i-5)+'/'for i in range(6)))

Pruébalo en línea!


1
Umm ... ¿no está codificando la salida más corta? Incluso con las barras diagonales escapadas, son 112 bytes en Java 8 / C # / JavaScript .
Kevin Cruijssen

@KevinCruijssen Realmente es>. <... Omg, soy tan tonto
Sr. Xcoder

1
Ahora tengo mucho golf que hacer ...
Sr. Xcoder



3

Chicle , 42 bytes

0000: e0 00 4f 00   22 5d 00 10   68 13 e2 04   15 00 b7 11 │ à.O."]..h.â...·.
0010: 7a 0e c5 f5   30 27 b5 b3   3d 39 8f a6   1f f9 74 52 │ z.Åõ0'µ³=9.¦.ùtR
0020: c5 66 98 bd   bd 0a 9a 8d   44 00                     │ Åf.½½¶..D.

3

Java 8, 112 bytes

o->"   _ _ _\n  /_/_/_/\\\n /_/_/_/\\/\\\n/_/_/_/\\/\\/\\\n\\_\\_\\_\\/\\/\\/\n \\_\\_\\_\\/\\/\n  \\_\\_\\_\\/"

Salida codificada.

Pruébalo aquí.


¿Puedo editar las partes codificadas de JS y C # en su respuesta?
LiefdeWen

De acuerdo, puede guardar 5 bytes en C # con literal literal o=>@"...y luego reemplazarlo \ncon una nueva línea real.
LiefdeWen

2

C #, 86 bytes

o=>@"   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/"

Pruébalo aquí.


Desafiante. Encontró un tamaño total ligeramente más pequeño (encabezado + pie de página + código), pero intercambia un encabezado / pie de página más pequeño por uno más grande que el suyo: ¡ Pruébelo en línea!
Mark Rejhon

@ MarkRejhon Desafortunadamente, es la parte principal que cuenta con el programa o la función predeterminados. ;) Con el agregado o=>{} sería 98 bytes en su caso.
Kevin Cruijssen

2

Retina , 59 bytes


   _¶  /_/\¶ /_/V\¶/_/VV\¶\_VVV¶ \_VV¶  \_V
._
$&$&$&
V
\/

Pruébalo en línea! Explicación: La primera etapa simplemente crea lo siguiente:

   _
  /_/\
 /_/V\
/_/VV\
\_VVV
 \_VV
  \_V

La segunda etapa expande todos los _s repitiéndolos a ellos y al personaje anterior 3 veces, mientras que la tercera etapa convierte los Vs en \/s.



2

05AB1E , 34 31 bytes

„_ 3×Âð'/:3F„/\«∞2ä`RˆD}\)¯R«.c

Pruébalo en línea!

Explicación

„_ 3×             # push the string "_ _ _ "
     Â            # push a reversed copy
      ð'/:        # replace spaces with slashes
3F                # 3 times do
  „/\«            # append "/\"
      ∞           # mirror
       2ä`        # split into 2 separate parts on stack
         Rˆ       # reverse the second part and push to global list
           D      # duplicate the remaining part
            }     # end loop
\)                # discard the last copy and wrap stack in a string
  ¯R              # push the global list and reverse it
    «             # append to the rest of the list
     .c           # pad lines to equal length

Solución alternativa de 31 bytes

„ _3×3FDð'/:„/\«∞2ä`R.Á})ÀÀÀ.c¦

ÀÀÀen esa versión alternativa [O_O"]...
Magic Octopus Urn

@MagicOctopusUrn: Sí ... no he encontrado una forma más corta de hacerlo o
evitarlo

1
Estoy de acuerdo, pasé un par de minutos intentándolo también; no hay forma de evitarlo, puedo ver xD.
Magic Octopus Urn

2

CSS, 225 223 bytes

-2 bytes gracias a Stephen S, espacios extra eliminados

No estoy exactamente seguro de si esto cuenta porque CSS no es realmente un lenguaje de programación, pero técnicamente CSS puede ser independiente ya que el <html>elemento se genera automáticamente si no lo hay.

html:after{content:'   _ _ _ \A   /_/_/_/\005c\A  /_/_/_/\005c/\005c \A /_/_/_/\005c/\005c/\005c \A \005c_\005c_\005c_\005c/\005c/\005c/ \A  \005c_\005c_\005c_\005c/\005c\/\A   \005c_\005c_\005c_\005c /';white-space: pre;}

Y aquí hay una versión con una fuente monoespaciada, 247 246 bytes .

-1 byte gracias a Stephen S, espacios extra eliminados

html:after{font-family:'Courier';content:'   _ _ _ \A   /_/_/_/\005c\A  /_/_/_/\005c/\005c \A /_/_/_/\005c/\005c/\005c \A \005c_\005c_\005c_\005c/\005c/\005c/ \A  \005c_\005c_\005c_\005c/\005c\/\A   \005c_\005c_\005c_\005c /';white-space: pre;}


Creo que se puede eliminar algunos espacios en el CSS en torno :s y {}S
Stephen

2

05AB1E , 35 32 31 bytes

"/ _\"•₁7æ¤ÝI}?ÕR&Ü•4вè4ôJ€∞ø¨»

Pruébalo en línea!

Método 100% diferente que Emigna.


Editar: si empiezo con el patrón ya transpuesto, puedo cortar 3 bytes.


"/ _\"            # Push ASCII-art characters used.
•₁7æ¤ÝI}?ÕR&Ü•4в  # Push transposed version of base-4 pattern.
è                 # Replace all digits in base-4 number with appropriate symbol.
 4ô               # Split into groups of 4.
   J              # Join together.
    €∞            # Mirror each row (technically column).
      ø           # Transpose back.
       ¨»         # Remove the extra "_ _ _", and print with newlines.

1

JavaScript (ES6), 95 bytes

_=>String.raw`   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/`

JavaScript (ES6), 103 94 bytes

-9 bytes gracias a @Shaggy

_=>`   _ _ _
  ${a=`/_/_/_/\\`}
 ${a}/\\
${a}/\\/\\
${b=`\\_\\_\\_\\/`}\\/\\/
 ${b}\\/
  ${b}`

JavaScript (ES6), 106 bytes

_=>`   _ _ _
  /_/_/_/\\
 /_/_/_/\\/\\
/_/_/_/\\/\\/\\
\\_\\_\\_\\/\\/\\/
 \\_\\_\\_\\/\\/
  \\_\\_\\_\\/`


@ Shaggy duh, lo sabía, incluso lo usé recientemente. ¡Gracias!
Stephen


@JoshuaBell siéntase libre de publicar eso como su propia respuesta, definitivamente no es un golf mío :) (también es muy ingenioso)
Stephen

1

Ruby, 72 70 bytes

7.times{|i|puts' '*(j=i^i/4+3)+'_ \_/_'[-i/3*2,2]*3+'/\/'[i/4,2]*j^=3}

Última edición: evite el doble \encerrando cadenas en ''lugar de "".

Ungolfed (nota en los índices de cadena negativa Ruby se envuelve. -1Es el último carácter).

7.times{|i|                       #7 lines.
  puts" "*(j=i^i/4+3)+            #Print j= 3,2,1,0, 0,1,2 spaces.
      "_ \\_/_"[-i/3*2,2]*3+      #Print 3 repeats of 2 characters from the string, index 0,-2,-2,-2,-4,-4,-4.
      "/\\/"[i/4,2]*j^=3          #Print 2 characters from the string, /\ or \/, repeated 3^j times.
}

1

Lote de Windows, 122 bytes

@echo    _ _ _
@echo   /_/_/_/\
@echo  /_/_/_/\/\
@echo /_/_/_/\/\/\
@echo \_\_\_\/\/\/
@echo  \_\_\_\/\/
@echo   \_\_\_\/

Bastante autoexplicativo.


1

Brainf * ck 387 bytes

Ni siquiera estoy seguro de si esto sigue siendo una cosa, pero estaba aburrido y lo hice por sh * ts y risitas :)

++++++++[->++++>++++>++++>++++<<<<]+++++[->>+++>+++>+++<<<<]<+++[->+++++<]>[->>>+++>+++<<<<]>>>>+++<<<...<+++[->.>>>.<<<<]<<++++++++++>+++++++++++++.<.>>>..>.<<+++[->>>>.<<.<<]>>>.<<<<.<.>>>.>.<<+++[->>>>.<<.<<]>>>.<.>.<<<<.<.>>>>.<<+++[->>>>.<<.<<]>>>.<.>.<.>.<<<<.<.>>>>>.<<<+++[->>>>.<.<<<]>>.>.<.>.<.<<<.<.>>>.>>.<<<+++[->>>>.<.<<<]>>.>.<.<<<.<.>>>..>>.<<<+++[->>>>.<.<<<]>>.<<<.<.>>

Editar: TIL: Soy 54.28% más efectivo que algún generador que encontré en línea ^. ^

Edit2: Pruébelo en línea Asegúrese de que Wrap esté activado para el comportamiento de desbordamiento de memoria en las opciones


1

COBOL, 238 bytes

Compilado con open-cobol. Tenga en cuenta que la sangría es una sola pestaña, no espacios, incluso si este sitio web lo formatea de esa manera.

    IDENTIFICATION DIVISION.
    PROGRAM-ID. a.
    PROCEDURE DIVISION.
    DISPLAY "   _ _ _".
    DISPLAY "  /_/_/_/\".
    DISPLAY " /_/_/_/\/\".
    DISPLAY "/_/_/_/\/\/\".
    DISPLAY "\_\_\_\/\/\/".
    DISPLAY " \_\_\_\/\/".
    DISPLAY "  \_\_\_\/".
    STOP RUN.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.