ASCII Rubik's Cube

12

Inspiré par cela et le chat suivant:

Inspiration

Votre tâche consiste à générer les éléments suivants:

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

Des espaces supplémentaires en début ou en fin sont autorisés, à condition que cela ne change pas l'apparence du cube. Comme d'habitude, le retour de ce qui précède ou d'une liste de chaînes d'une fonction est autorisé.

C'est le , donc la réponse la plus courte en octets gagne!

Stephen
la source
Sandbox
Stephen
3
En relation. (Ainsi que, plus concrètement, quelques autres défis que vous pouvez trouver lors de la recherche de "carreaux de diamant".)
Martin Ender
7
10 heures dans le bac à sable (surtout avec un seul vote positif) ne suffisent pas. Je recommanderais d'attendre au moins 48 heures.
Dada
9
Pour expliquer mon downvote: je n'aime pas vraiment le défi, car l'image prend beaucoup de place, et j'ai l'impression que vous essayez plus de montrer une image drôle que de faire un bon défi (d'autant plus que le motif n'est pas 'est pas le même que celui sur la photo) (et je suis sûr que cela attirera des votes positifs de personnes qui viennent de rire de la photo). De plus, "sortir cette chaîne exacte" avec une chaîne qui ressemble plus ou moins à celle-ci a été répétée plusieurs fois, et je ne vois pas en quoi votre défi est suffisamment différent pour être intéressant.
Dada
4
@StephenS J'ai donné +1, mais je ne suis pas d'accord pour dire que vous pouvez dire la même chose pour n'importe quel défi KC, lorsque je lance un défi KC, je m'assure de rendre le motif quelque peu complexe (donc le charbon de bois ne se contente pas de gagner automatiquement), je fais des modèles plus longs pour que les langues qui gèrent mieux les boucles aient une chance (comme JS) et j'essaie d'utiliser des choses que certaines langues pourraient avoir intégrées comme l'alphabet, les défis KC diffèrent beaucoup, et essayer de dire qu'ils sont tous les mêmes prend quelque chose loin de la catégorie.
LiefdeWen

Réponses:

11

Fusain , 28 23 octets

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

Essayez-le en ligne! Le lien est vers la version détaillée du code. Pas très au charbon, je sais. Je ne savais pas que cela ‖M↓déplace délibérément le curseur, alors j'avais essayé à l'origine F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³ce qui ne fonctionnait pas, parce que j'essayais de le faire à l'envers. Si vous voulez quelque chose de plus Charcoal-y alors essayez G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³pour 32 octets: Essayez-le en ligne!

Neil
la source
6

Bubblegum , 35 octets

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.

Essayez-le en ligne!

ovs
la source
5
outgolfed in bubblegum 😲
Uriel
5

> <> , 97 94 93 89 octets

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

Essayez-le en ligne!

Edit 3: Compris que vous pouvez utiliser le caractère "" (ascii 25) - Maintenant, le processus enlève seulement 15 de chaque élément de la pile et imprime. Les instructions directionnelles supplémentaires ont également été supprimées et remplacées par 1 mouvement (01.)

Pélican bleu canard
la source
4

Queue, 99 octets

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

la source
1
Bienvenue chez PPCG!
Stephen
Ou la #!/bin/sed 1dvariante
sch
4

Python 3 , 98 94 octets

@KevinCruijssen a suggéré ceci ...

-4 octets grâce à @HyperNeutrino et @WheatWizard

Solution de codage en dur de sortie:

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

Essayez-le en ligne!

ou, 98 octets:

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

Essayez-le en ligne!


Python 3 , 139 octets

Dumb Python 3 Sumbmission non Hardcoding, sûr qu'il peut être joué au golf. Étonnamment, la compression des deux fors en une seule boucle est plus longue:

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

Essayez-le en ligne!

Python 3 , 140 octets

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

Essayez-le en ligne!

M. Xcoder
la source
1
Umm .. le codage en dur de la sortie n'est-il pas plus court? Même avec les barres obliques échappées, c'est 112 octets en Java 8 / C # / JavaScript .
Kevin Cruijssen
@KevinCruijssen C'est en fait>. <... Omg je suis tellement stupide
M. Xcoder
1
Maintenant, j'ai beaucoup de golf à faire ....
M. Xcoder
96 octets
HyperNeutrino
3

Bubblegum , 42 octets

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
la source
3

Java 8, 112 octets

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

Sortie codée en dur.

Essayez-le ici.

Kevin Cruijssen
la source
Puis-je modifier les parties codées en dur JS et C # dans votre réponse?
LiefdeWen
D'accord, vous pouvez enregistrer 5 octets sur C # avec littéral mot pour mot o=>@"..., puis remplacer \npar une nouvelle ligne réelle.
LiefdeWen
2

C #, 86 octets

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

Essayez-le ici.

Kevin Cruijssen
la source
Difficile. Trouvé une taille totale légèrement plus petite (en-tête + pied de page + code), mais échange un en-tête / pied de page plus petit contre un principal légèrement plus grand que le vôtre: Essayez-le en ligne!
Mark Rejhon
@MarkRejhon Malheureusement, c'est la partie principale qui compte avec le programme ou la fonction par défaut. ;) Avec l'ajout, o=>{} ce serait 98 octets dans votre cas.
Kevin Cruijssen
2

Rétine , 59 octets


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

Essayez-le en ligne! Explication: La première étape crée simplement les éléments suivants:

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

La deuxième étape développe ensuite tous les _s en les répétant et le caractère précédent 3 fois, tandis que la troisième étape transforme les Vs en \/s.

Neil
la source
2

PHP , 77 octets

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

Essayez-le en ligne!

Jörg Hülsermann
la source
1
Économisez 4 octets: essayez-le en ligne!
Neil
1
@Neil Merci et 2 octets supplémentaires enregistrés
Jörg Hülsermann
C'est toujours bien quand vous pouvez surpasser la sortie littérale!
Neil
2

05AB1E , 34 31 octets

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

Essayez-le en ligne!

Explication

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

Solution alternative de 31 octets

„ _3×3FDð'/:„/\«∞2ä`R.Á})ÀÀÀ.c¦
Emigna
la source
ÀÀÀdans cette version alternative [O_O"]...
Urne Magic Octopus
@MagicOctopusUrn: Ouais ... Je n'ai pas trouvé de moyen plus court de le faire ou de le contourner: P
Emigna
1
Je suis d'accord, j'ai passé quelques minutes à essayer aussi; il n'y a aucun moyen de contourner cela, je peux voir xD.
Magic Octopus Urn
2

CSS, 225 223 octets

-2 octets grâce à Stephen S, espaces supplémentaires supprimés

Je ne sais pas exactement si cela compte parce que CSS n'est pas vraiment un langage de programmation, mais techniquement, CSS peut être autonome puisque l' <html>élément est généré automatiquement s'il n'y en a pas.

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

Et voici une version avec une police à espacement fixe, 247 246 octets .

-1 octet grâce à Stephen S, espaces supplémentaires supprimés

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
la source
Je pense que vous pouvez supprimer certains espaces dans le CSS autour de :s et {}s
Stephen
2

05AB1E , 35 32 31 octets

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

Essayez-le en ligne!

Méthode 100% différente d'Emigna.


Edit: Si je commence avec le motif déjà transposé, je peux couper 3 octets.


"/ _\"            # 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.
Urne de poulpe magique
la source
1

JavaScript (ES6), 95 octets

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

JavaScript (ES6), 103 94 octets

-9 octets grâce à @Shaggy

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

JavaScript (ES6), 106 octets

_=>`   _ _ _
  /_/_/_/\\
 /_/_/_/\\/\\
/_/_/_/\\/\\/\\
\\_\\_\\_\\/\\/\\/
 \\_\\_\\_\\/\\/
  \\_\\_\\_\\/`
Stephen
la source
94 octets .
Shaggy
@Shaggy duh, je le savais, même utilisé récemment. Merci!
Stephen
1
93 octets
Joshua Bell
@JoshuaBell n'hésitez pas à poster cela comme votre propre réponse, ce n'est certainement pas mon golf :) (c'est aussi très ingénieux)
Stephen
1

Rubis, 72 70 octets

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

Dernière modification: évitez le double \en insérant des chaînes au ''lieu de "".

Ungolfed (note dans les index de chaîne négatifs Ruby enrouler autour. -1Est le dernier caractère.)

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
la source
1

Windows Batch, 122 octets

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

Assez explicite.

stevefestl
la source
1

Brainf * ck 387 octets

Je ne sais même pas si c'est toujours une chose mais je m'ennuyais et je l'ai fait pour des conneries et des rires :)

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

Edit: TIL: Je suis 54,28% plus efficace que certains générateurs que j'ai trouvés en ligne ^. ^

Edit2: Essayez-le en ligne Assurez-vous que Wrap est activé pour le comportement de dépassement de mémoire dans les options

Teun Pronk
la source
1

COBOL, 238 octets

Compilé avec open-cobol. Notez que l'indentation est un onglet unique, pas des espaces, même si ce site Web le met en forme de cette façon.

    IDENTIFICATION DIVISION.
    PROGRAM-ID. a.
    PROCEDURE DIVISION.
    DISPLAY "   _ _ _".
    DISPLAY "  /_/_/_/\".
    DISPLAY " /_/_/_/\/\".
    DISPLAY "/_/_/_/\/\/\".
    DISPLAY "\_\_\_\/\/\/".
    DISPLAY " \_\_\_\/\/".
    DISPLAY "  \_\_\_\/".
    STOP RUN.
garçon abricot
la source
0

Python 2 , 93 octets

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

Essayez-le en ligne!

totalement humain
la source