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!



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!


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!


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



4

Queue, 99 octets

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

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!


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



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.

3

Java 8, 112 octets

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

Sortie codée en dur.

Essayez-le ici.


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.


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.



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¦

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


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.

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

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


@Shaggy duh, je le savais, même utilisé récemment. Merci!
Stephen


@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.
}

1

Windows Batch, 122 octets

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

Assez explicite.


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


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.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.