Cubo de Rubik ASCII


12

Inspirado por este e pelo seguinte chat:

Inspiração

Sua tarefa é gerar o seguinte:

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

Espaço em branco à esquerda ou à direita é permitido, desde que não altere a aparência do cubo. Como de costume, é permitido retornar o acima ou uma lista de cadeias de caracteres de uma função.

Isso é , então a resposta mais curta em bytes vence!



3
Relacionado. (Bem como, mais tangencialmente, um par de outros desafios que você pode encontrar ao procurar por "azulejos diamante".)
Martin Ender

7
10 horas na Sandbox (especialmente com apenas uma votação) não são suficientes. Eu recomendo esperar pelo menos 48 horas.
Dada

9
Para explicar meu voto negativo: eu realmente não gosto do desafio, porque a imagem ocupa muito espaço e sinto que você está mais tentando mostrar uma imagem engraçada do que para fazer um bom desafio (ainda mais porque o padrão não é é o mesmo que o da foto) (e tenho certeza de que isso atrairá alguns votos positivos de pessoas que riram da foto). Além disso, "produza essa string exata" com uma string que parece mais ou menos do que essa já foi executada várias vezes, e não vejo como o seu desafio é diferente o suficiente para ser interessante.
Dada

4
@StephenS Eu dei +1, mas eu discordo que você pode dizer o mesmo para qualquer desafio de KC, quando faço um desafio de KC, certifique-se de tornar o padrão um pouco complexo (para que o carvão não seja apenas uma vitória automática), padrões mais longos, para que linguagens que possam lidar com loops melhor tenham uma chance (como JS) e eu tento usar coisas que algumas linguagens possam ter construído como o alfabeto, os desafios do KC diferem muito e tentar dizer que são todos iguais leva algo longe da categoria.
LiefdeWen

Respostas:



11

Carvão , 28 23 bytes

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

Experimente online! Link é a versão detalhada do código. Não muito carvão, eu sei. Não sabia que ‖M↓movia deliberadamente o cursor, então tentei originalmente o F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³que não funcionava, porque estava tentando fazê-lo de cabeça para baixo. Se você quiser algo mais a carvão, tente G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³por 32 bytes: Experimente online!


6

Chiclete , 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.

Experimente online!


5
outgolfed em chiclete 😲
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-

Experimente online!

Edit 3: Descobrimos que você pode usar o caractere "" (ascii 25) - Agora, o processo tira 15 de cada item da pilha e imprime. Também removeu as instruções direcionais extras e substituiu todas por 1 movimento (01.)



4

Cauda, ​​99 bytes

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

1
Bem-vindo ao PPCG!
Stephen

Ou a #!/bin/sed 1dvariante
sch

4

Python 3 , 98 94 bytes

@KevinCruijssen sugeriu isso ...

-4 bytes graças a @HyperNeutrino e @WheatWizard

Solução de codificação de saída:

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

Experimente online!

ou 98 bytes:

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

Experimente online!


Python 3 , 139 bytes

Dumb Python 3 subrmission sem codificação, com certeza pode ser jogado. Surpreendentemente, comprimir os dois fors em apenas um loop é mais longo:

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)+'/')

Experimente online!

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

Experimente online!


1
Umm .. não está codificando a saída mais curta? Mesmo com as barras escapadas, são 112 bytes em Java 8 / C # / JavaScript .
Kevin Cruijssen

@KevinCruijssen Na verdade é>. <... Omg, eu sou tão burro #
Xcoder

1
Agora eu tenho um monte de golfe que fazer ....
Mr. Xcoder



3

Chiclete , 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  \\_\\_\\_\\/"

Saída codificada.

Experimente aqui.


Posso editar as partes codificadas em JS e C # na sua resposta?
LiefdeWen

Ok, você pode salvar 5 bytes em C # com literal literal o=>@"...e substituí-lo \npor uma nova linha real.
LiefdeWen

2

C #, 86 bytes

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

Experimente aqui.


Desafiador. Encontrou um tamanho total ligeiramente menor (cabeçalho + rodapé + código), mas troca cabeçalho / rodapé menor por main um pouco maior que o seu: Experimente on-line!
Mark Rejhon

@ MarkRejhon Infelizmente, é a parte principal que conta com o programa ou função padrão. ;) Com o adicionado o=>{} , seriam 98 bytes no seu caso.
Kevin Cruijssen

2

Retina , 59 bytes


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

Experimente online! Explicação: O primeiro estágio simplesmente cria o seguinte:

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

O segundo estágio expande todos os _s repetindo-os e o caractere anterior 3 vezes, enquanto o terceiro estágio transforma os Vs em \/s.



2

05AB1E , 34 31 bytes

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

Experimente online!

Explicação

„_ 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

Solução alternativa de 31 bytes

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

ÀÀÀnessa versão alternativa [O_O"]...
Magic Octopus Urn

@MagicOctopusUrn: Sim ... Eu não encontrei uma maneira mais curta de fazer ou contornar isso: P
Emigna

1
Concordo, passei alguns minutos tentando também; não tem como eu ver xD.
Magic Octopus Urn

2

CSS, 225 223 bytes

-2 bytes graças a Stephen S, remoção de espaços extras

Não sei exatamente se isso conta, porque o CSS não é realmente uma linguagem de programação, mas tecnicamente o CSS pode ser independente, pois o <html>elemento é gerado automaticamente se não houver um.

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;}

E aqui está uma versão com uma fonte monoespaçada, 247 246 bytes .

-1 byte graças a Stephen S, removidos espaços adicionais

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;}


Eu acho que você pode eliminar alguns espaços no CSS torno :s e {}s
Stephen

2

05AB1E , 35 32 31 bytes

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

Experimente online!

Método 100% diferente do Emigna.


Edit: Se eu começar com o padrão já transposto, posso 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 graças a @Shaggy

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

JavaScript (ES6), 106 bytes

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


@ Shaggy duh, eu sabia disso, até o usei recentemente. Obrigado!
Stephen


@JoshuaBell à vontade para postar isso como sua própria resposta, que definitivamente não é um campo de golfe da mina :) (é também muito ingenius)
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}

Edição mais recente: evite dobrar \colocando cadeias de caracteres em ''vez de "".

Ungolfed (note que os índices negativos de sequência de Ruby envolvem. -1É o último caractere.)

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 do Windows, 122 bytes

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

Bastante autoexplicativo.


1

Brainf * ck 387 bytes

Nem tenho certeza se isso ainda é uma coisa, mas eu estava entediado e fiz isso por merdas e risadinhas :)

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

Edit: TIL: Sou 54,28% mais eficaz do que algum gerador que encontrei on-line ^. ^

Edit2: Experimente online Verifique se o Wrap está ativado para o comportamento de estouro de memória nas opções


1

COBOL, 238 bytes

Compilado com cobol aberto. Observe que o recuo é uma única guia, não espaços, mesmo que este site a formate dessa maneira.

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


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.