Cubo di Rubik ASCII


12

Ispirato da questa e dalla seguente chat:

Ispirazione

Il tuo compito è quello di produrre quanto segue:

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

Sono consentiti spazi aggiuntivi iniziali o finali, purché non modifichi l'aspetto del cubo. Come al solito, è consentito restituire quanto sopra o un elenco di stringhe da una funzione.

Questo è , quindi vince la risposta più breve in byte!



3
Relazionato. (Così come, più tangenzialmente, un paio di altre sfide che puoi trovare quando cerchi "piastrellatura di diamanti".)
Martin Ender,

7
10 ore nella Sandbox (specialmente con un solo voto) non sono abbastanza. Consiglierei di attendere almeno 48 ore.
Dada,

9
Per spiegare il mio downvote: la sfida non mi piace molto, perché l'immagine occupa gran parte dello spazio e sento che stai cercando di mostrare un'immagine divertente piuttosto che fare una bella sfida (anche di più perché lo schema non è è uguale a quello nella foto) (e sono abbastanza sicuro che questo attirerà alcuni voti da parte di persone che hanno appena riso della foto). Inoltre, "l'output di questa stringa esatta" con una stringa che sembra più o meno di questa è stato fatto più volte e non riesco a vedere come la tua sfida sia abbastanza diversa da essere interessante.
Dada,

4
@StephenS Ho dato +1, ma non sono d'accordo sul fatto che tu possa dire lo stesso per qualsiasi sfida KC, quando faccio una sfida KC mi assicuro di rendere il modello un po 'complesso (quindi il carbone non vince solo automaticamente), faccio modelli più lunghi in modo che le lingue in grado di gestire meglio i loop abbiano una possibilità (come JS) e provo a usare cose che alcune lingue potrebbero aver incorporato come l'alfabeto, le sfide di KC differiscono molto e provare a dire che sono tutte uguali richiede qualcosa lontano dalla categoria.
Liefde:

Risposte:



11

Carbone , 28 23 byte

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

Provalo online! Il collegamento è alla versione dettagliata del codice. Non molto carbone, lo so. Non mi rendevo conto che ‖M↓sposta deliberatamente il cursore, quindi inizialmente avevo provato F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³che non funzionava, perché stavo cercando di farlo capovolto. Se vuoi qualcosa di più Charcoal-y, prova G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³a 32 byte: provalo online!


6

Bubblegum , 35 byte

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.

Provalo online!


5
superato in bubblegum 😲
Uriel il

5

> <> , 97 94 93 89 byte

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

Provalo online!

Modifica 3: Ho capito che puoi usare il carattere "" (ascii 25) - Ora il processo prende solo 15 di ogni articolo in pila e stampa. Rimosse anche le istruzioni direzionali extra e sostituite tutte con 1 mossa (01.)



4

Coda, 99 byte

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

1
Benvenuti in PPCG!
Stephen,

O la #!/bin/sed 1dvariante
sch

4

Python 3 , 98 94 byte

@KevinCruijssen ha suggerito questo ...

-4 byte grazie a @HyperNeutrino e @WheatWizard

Soluzione di hardcoding di output:

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

Provalo online!

oppure, 98 byte:

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

Provalo online!


Python 3 , 139 byte

Dumb Python 3 Soccmission non hardcoding, sicuro che può essere giocato a golf. Sorprendentemente, comprimere le due fors in un solo ciclo è più lungo:

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

Provalo online!

Python 3 , 140 byte

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

Provalo online!


1
Umm .. non sta codificando hard l'output più breve? Anche con le barre sfuggite, è di 112 byte in Java 8 / C # / JavaScript .
Kevin Cruijssen,

@KevinCruijssen In realtà è>. <... Omg, sono così stupido
Mr. Xcoder,

1
Ora ho molto da giocare a golf ....
Mr. Xcoder,



3

Bubblegum , 42 byte

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 byte

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

Uscita codificata.

Provalo qui.


Posso modificare le parti hardcoded JS e C # nella tua risposta?
Liefde:

Va bene puoi salvare 5 byte su C # con letterale letterale o=>@"...e quindi sostituire \ncon una nuova riga effettiva.
Liefde:

2

C #, 86 byte

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

Provalo qui.


Stimolante. Ho trovato una dimensione totale leggermente più piccola (intestazione + piè di pagina + codice), ma scambia intestazione / piè di pagina più piccola con un main leggermente più grande del tuo: provalo online!
Mark Rejhon,

@MarkRejhon Purtroppo è la parte principale che conta con il programma o la funzione predefiniti. ;) Con l'aggiunta o=>{} sarebbe 98 byte nel tuo caso.
Kevin Cruijssen,

2

Retina , 59 byte


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

Provalo online! Spiegazione: Il primo stadio crea semplicemente quanto segue:

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

Il secondo stadio espande quindi tutte le _s ripetendole 3 volte e il personaggio precedente, mentre il terzo stadio trasforma le Vs in \/s.



2

05AB1E , 34 31 byte

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

Provalo online!

Spiegazione

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

Soluzione alternativa a 31 byte

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

ÀÀÀin quella versione alternativa [O_O"]...
Magic Octopus Urn il

@MagicOctopusUrn: Sì ... non ho trovato un modo più breve per farlo o
aggirarlo

1
Concordo, ho passato anche un paio di minuti a provare; non c'è modo di evitarlo, posso vedere xD.
Magic Octopus Urn,

2

CSS, 225 223 byte

-2 byte grazie a Stephen S, spazi extra rimossi

Non sono esattamente sicuro se questo conta perché il CSS non è in realtà un linguaggio di programmazione, ma tecnicamente il CSS può essere autonomo poiché l' <html>elemento viene generato automaticamente se non ce n'è uno.

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

Ed ecco una versione con un carattere a spaziatura fissa, 247 246 byte .

-1 byte grazie a Stephen S, spazi extra rimossi

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


Penso che si possa eliminare alcuni spazi nel CSS intorno :s e {}s
Stephen

2

05AB1E , 35 32 31 byte

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

Provalo online!

Metodo diverso al 100% da Emigna.


Modifica: se comincio con il modello già trasposto, posso ritagliare 3 byte.


"/ _\"            # 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 byte

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

JavaScript (ES6), 103 94 byte

-9 byte grazie a @Shaggy

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

JavaScript (ES6), 106 byte

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


@Shaggy duh, lo sapevo, l'ho usato anche di recente. Grazie!
Stephen,


@JoshuaBell sentiti libero di pubblicarlo come una tua risposta, che sicuramente non è un mio golf :) (è anche molto ingegnoso)
Stephen,

1

Rubino, 72 70 byte

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

Ultima modifica: evita il doppio \racchiudendo le stringhe ''invece di "".

Ungolfed (la nota negli indici delle stringhe negative di Ruby si chiude . -1È l'ultimo carattere.)

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

Batch di Windows, 122 byte

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

Abbastanza auto-esplicativo.


1

Brainf * ck 387 byte

Non sono nemmeno sicuro che sia ancora una cosa, ma ero annoiato e l'ho fatto per cazzate e risatine :)

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

Modifica: TIL: Sono il 54,28% più efficace di alcuni generatori che ho trovato online ^. ^

Edit2: provalo online Assicurati che Wrap sia attivo per il comportamento di overflow della memoria nelle opzioni


1

COBOL, 238 byte

Compilato con open-cobol. Si noti che il rientro è una singola scheda, non spazi, anche se questo sito Web lo formatta in questo modo.

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


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.