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!

Stephen
fonte
Sandbox
Stephen
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!

Neil
fonte
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!

ovs
fonte
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.)

Pelicano-verde
fonte
4

Cauda, ​​99 bytes

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

fonte
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!

Mr. Xcoder
fonte
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
96 bytes
HyperNeutrino 26/06
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.
Uriel
fonte
3

Java 8, 112 bytes

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

Saída codificada.

Experimente aqui.

Kevin Cruijssen
fonte
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.

Kevin Cruijssen
fonte
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.

Neil
fonte
2

PHP , 77 bytes

<?=strtr('   _ _ _
  0\
 01\
011\
2111
 211
  21',["/_/_/_/","\/","\_\_\_"]);

Experimente online!

Jörg Hülsermann
fonte
1
Economize 4 bytes: experimente online!
Neil
1
@Neil Thank You e mais 2 bytes salvos
Jörg Hülsermann 26/17
É sempre bom quando você pode superar a saída literal!
26517 Neil
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¦
Emigna
fonte
ÀÀÀ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;}

vladdobra
fonte
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.
Urna de polvo mágico
fonte
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

_=>`   _ _ _
  /_/_/_/\\
 /_/_/_/\\/\\
/_/_/_/\\/\\/\\
\\_\\_\\_\\/\\/\\/
 \\_\\_\\_\\/\\/
  \\_\\_\\_\\/`
Stephen
fonte
94 bytes .
Shaggy
@ Shaggy duh, eu sabia disso, até o usei recentemente. Obrigado!
Stephen
1
93 bytes
Joshua Bell
@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.
}
Level River St
fonte
1

Lote do Windows, 122 bytes

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

Bastante autoexplicativo.

stevefestl
fonte
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

Teun Pronk
fonte
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.
menino de damasco
fonte
0

Python 2 , 93 bytes

print r"""   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/"""

Experimente online!

totalmente humano
fonte