Kostka Rubika ASCII


12

Zainspirowany tym i następującym czatem:

Inspiracja

Twoim zadaniem jest wygenerowanie następujących danych:

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

Dopuszczalne są dodatkowe początkowe lub końcowe białe spacje, o ile nie zmienia to wyglądu kostki. Jak zwykle dozwolone jest zwracanie powyższego lub listy ciągów z funkcji.

To jest , więc wygrywa najkrótsza odpowiedź w bajtach!



3
Związane z. (A także, bardziej stycznie, kilka innych wyzwań, które możesz znaleźć, szukając „płytki diamentowej”.)
Martin Ender

7
10 godzin w piaskownicy (szczególnie przy jednym głosowaniu) nie wystarczy. Polecam poczekać co najmniej 48 godzin.
Dada

9
Aby wyjaśnić moją opinię: Nie podoba mi się to wyzwanie, ponieważ zdjęcie zajmuje dużo miejsca i wydaje mi się, że bardziej próbujesz pokazać zabawny obraz niż podjąć dobre wyzwanie (tym bardziej, że wzór nie jest jest taki sam jak ten na zdjęciu) (i jestem pewien, że przyciągnie to entuzjastyczne opinie osób, które właśnie się śmiały z obrazu). Ponadto, „wypisz ten dokładny ciąg” za pomocą łańcucha, który wygląda mniej więcej na ten, wykonano kilka razy, a ja nie widzę, jak twoje wyzwanie jest wystarczająco różne, aby być interesującym.
Dada

4
@StephenS Dałem +1, ale nie zgadzam się, że możesz powiedzieć to samo dla każdego wyzwania KC, kiedy wykonuję wyzwanie KC, upewniam się, że wzór jest nieco złożony (więc węgiel drzewny nie tylko wygrywa automatycznie), robię dłuższe wzorce, więc języki, które lepiej radzą sobie z pętlami, mają większą szansę (jak JS) i staram się używać rzeczy, które niektóre języki mogły wbudować, takich jak alfabet, wyzwania KC bardzo się różnią, a próba stwierdzenia, że ​​są takie same, wymaga czegoś z dala od kategorii.
LiefdeWen

Odpowiedzi:



11

Węgiel , 28 23 bajtów

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

Wypróbuj online! Link jest do pełnej wersji kodu. Nie bardzo węgiel drzewny - tak wiem. Nie zdawałem sobie sprawy, że ‖M↓celowo poruszam kursorem, więc początkowo próbowałem, F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³co nie zadziałało, ponieważ próbowałem to zrobić do góry nogami. Jeśli chcesz czegoś więcej Węgla-y, spróbuj G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³32 bajtów: Wypróbuj online!


6

Bubblegum , 35 bajtów

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.

Wypróbuj online!


5
outgolfed in bubblegum 😲
Uriel

5

> <> , 97 94 93 89 bajtów

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

Wypróbuj online!

Edycja 3: Zrozumiałem, że możesz użyć znaku „” (ascii 25) - Teraz proces bierze tylko 15 z każdego elementu stosu i drukuje. Usunięto także dodatkowe instrukcje kierunkowe i zastąpiono je 1 ruchem (01.)



4

Ogon, 99 bajtów

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

1
Witamy w PPCG!
Stephen

Lub #!/bin/sed 1dwariant
sch

4

Python 3 , 98 94 bajty

@KevinCruijssen zasugerował to ...

-4 bajty dzięki @HyperNeutrino i @WheatWizard

Wyjściowe rozwiązanie do twardego kodowania:

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

Wypróbuj online!

lub 98 bajtów:

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

Wypróbuj online!


Python 3 , 139 bajtów

Dumb Python 3 Niekodowanie na stałe, na pewno można grać w golfa. Co zaskakujące, kompresja dwóch fors w jednej pętli jest dłuższa:

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

Wypróbuj online!

Python 3 , 140 bajtów

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

Wypróbuj online!


1
Umm .. czy kodowanie wyjściowe nie jest sztywne? Nawet ze znakami ucieczki, to 112 bajtów w Javie 8 / C # / JavaScript .
Kevin Cruijssen

@KevinCruijssen To faktycznie jest>. <... Omg Jestem taki głupi
Pan Xcoder

1
Teraz mam dużo do gry w golfa ...
Pan Xcoder



3

Bubblegum , 42 bajty

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 bajtów

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

Wyjście zakodowane na stałe.

Wypróbuj tutaj.


Czy mogę edytować na stałe części JS i C # w odpowiedzi?
LiefdeWen

OK, możesz zapisać 5 bajtów na C # dosłownie dosłownie, o=>@"...a następnie zastąpić \nrzeczywistą nową linią.
LiefdeWen

2

C #, 86 bajtów

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

Wypróbuj tutaj.


Trudne. Znaleziono nieco mniejszy całkowity rozmiar (nagłówek + stopka + kod), ale zamienia mniejszy nagłówek / stopkę na nieco większy główny niż twój: Wypróbuj online!
Mark Rejhon

@MarkRejhon Niestety jest to główna część, która liczy się z domyślnym programem lub funkcją. ;) Po dodaniu o=>{} będzie to w twoim przypadku 98 bajtów .
Kevin Cruijssen

2

Siatkówka , 59 bajtów


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

Wypróbuj online!Objaśnienie: Pierwszy etap po prostu tworzy następujące elementy:

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

Drugi etap następnie rozszerza wszystkie _s powtarzając je trzy razy, a poprzedni znak trzy razy, podczas gdy trzeci etap zamienia Vs w \/s.



2

05AB1E , 34 31 bajtów

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

Wypróbuj online!

Wyjaśnienie

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

Alternatywne rozwiązanie 31-bajtowe

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

ÀÀÀw tej alternatywnej wersji [O_O"]...
Magic Octopus Urn

@MagicOctopusUrn: Tak ... Nie znalazłem krótszego sposobu na zrobienie lub obejście tego: P
Emigna

1
Zgadzam się, spędziłem też kilka minut próbując; nie ma innego wyjścia, żebym widział xD.
Magic Octopus Urn

2

CSS, 225 223 bajtów

-2 bajty dzięki Stephenowi S. Usunięto dodatkowe spacje

Nie jestem do końca pewien, czy to się liczy, ponieważ CSS nie jest tak naprawdę językiem programowania, ale technicznie CSS może być samodzielny, ponieważ <html>element jest generowany automatycznie, jeśli go nie ma.

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

A oto wersja z czcionką o stałej szerokości 247 246 bajtów .

-1 bajt dzięki Stephenowi S. Usunięto dodatkowe spacje

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


Myślę, że możesz usunąć niektóre spacje w CSS wokół :si- {}s
Stephen

2

05AB1E , 35 32 31 bajtów

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

Wypróbuj online!

100% inna metoda niż Emigna.


Edycja: Jeśli zacznę od transponowanego wzoru, mogę wyciąć 3 bajty.


"/ _\"            # 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 bajtów

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

JavaScript (ES6), 103 94 bajty

-9 bajtów dzięki @Shaggy

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

JavaScript (ES6), 106 bajtów

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


@Shaggy duh, wiedziałem o tym, nawet ostatnio go użyłem. Dzięki!
Stephen


@JoshuaBell możesz napisać jako własną odpowiedź, to zdecydowanie nie jest mój golf :) (to również bardzo pomysłowe)
Stephen

1

Rubin, 72 70 bajtów

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

Ostatnia edycja: unikaj podwójności \, umieszczając w niej ciągi ''zamiast"" .

Ungolfed (uwaga w Ruby indeksy ujemnych ciągów znaków są zawijane. -1Jest ostatnim znakiem).

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

Pakiet Windows, 122 bajty

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

Całkiem samoobjawowa.


1

Brainf * ck 387 bajtów

Nie jestem nawet pewien, czy to nadal jest problem, ale nudziłem się i robiłem to przez sh * ts i chichoty :)

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

Edycja: TIL: Jestem 54,28% bardziej skuteczny niż jakiś generator, który znalazłem online ^. ^

Edycja2: Wypróbuj online Upewnij się, że opcja jest włączona dla opcji Przepełnienie pamięci w opcjach


1

COBOL, 238 bajtów

Kompilowany z otwartym kobolem. Pamiętaj, że wcięcie to pojedyncza karta, a nie spacje, nawet jeśli ta strona internetowa sformatuje go w ten sposób.

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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.