... pomożesz mi go uwiecznić?
Mam tę poduszkę już od kilku lat i najwyraźniej czas się jej pozbyć. Czy możesz napisać funkcję lub program, który mogę zabrać ze sobą i użyć, aby odtworzyć tę poduszkę, gdy chcę trochę wspomnieć.
Musi działać bez argumentów wejściowych.
Wynik powinien wyglądać dokładnie tak (końcowe znaki nowej linii i spacje są w porządku).
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
To jest kod golfowy, więc wygrywa najkrótszy kod w bajtach!
Tabela liderów
code-golf
ascii-art
kolmogorov-complexity
Stewie Griffin
źródło
źródło
Odpowiedzi:
05AB1E ,
1815 bajtówKod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
/// , 116 bajtów
Wypróbuj online!
Edycja :
\\\\\\\\\\\\\\\/
i\\\\\\\\\\\\\\\\
są właściwie odpowiednio pojedynczym / i \.Edycja : -3, ponieważ myślałem o usunięciu
i
. Myślę, że nie można tego dalej grać w golfa.źródło
Python 2, 49 bajtów
Podziękowania dla Mitcha Schwartza za tę czystą metodę, która oszczędza bajt. Chodzi o to, aby wydrukować cztery linie
('\\'*5+'/'*5)*6
, zamienić role slash i backslash, a następnie wykonać cały ten proces 6 razy. Te dwa znaki są przechowywane wa
ib
, i zamieniane jakoa,b=b,a
. Podwójna pętla jest podwójna, generując następujący ciąg kodu, a następnie wykonując go za pomocąexec
:50 bajtów:
Tworzy ciąg linii, drukuje go cztery razy, a następnie odwraca, a następnie robi to 6 razy. Czyni to, generując następujący kod, a następnie wykonując go:
Oto kilka iteracji mojego golfa:
źródło
05AB1E, 15 bajtów
Wypróbuj online!
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 .
źródło
JavaScript (ES6),
686058 bajtówFunkcja rekurencyjna. Kilka optymalizacji inspirowanych odpowiedzią chocochaos .
Próbny
Pokaż fragment kodu
źródło
&1
i zapisać dwa bajtyn < 480
. Dlan >= 480
, to musimy nawiasów:(n/240^n/5)&1
.Bubblegum , 30 bajtów
Obowiązkowa odpowiedź gumy do żucia.
źródło
Haskell,
777057 bajtówNudne
concat
sireplicate
zamiast gry z sinusami. Stary był:źródło
Brainfuck, 140 bajtów
:-RE
źródło
Python 2,
8680767473 bajtyMógłby grać w golfa jeszcze kilka, ale to dopiero początek.
Edytować
Zapisano 6, usuwając niepotrzebne nawiasy klamrowe
Kolejne 4 za pomocą pojedynczego ciągu, a następnie odwracając go
Dzięki @Adnan. Miałem późną noc zeszłej nocy i jeszcze nie do końca obudzony: str
-1, przenosząc
*24
zmienną zamiast używać jej dwukrotnieźródło
*6*4
to to samo co*24
? : pBrainfuck, 149 bajtów
Najlepszy tłumacz EVAR!
Wykorzystuje 6 komórek (bez zawijania, bez modulo). Tutaj są:
Te
00
komórki są wykorzystywane do liczników w pętlach. Tutaj liczniki są wypełnione wartościami początkowymi:Najbardziej lewy licznik jest dla najbardziej wewnętrznej pętli (tak, używam zagnieżdżonych pętli o głębokości 3). Należy pamiętać, że 4. komórka (
04
licznik) jest używana dwa razy, raz/////\\\\\...
i raz za\\\\\/////...
każdym razem.0A
,2F
I5C
to znaki\n
,/
i\
, odpowiednio.źródło
Python 2.7 66 -> 56 -> 55 bajtów
nowość w grze w golfa
Dzięki Stewie Griffin
Zapomniałem głupiego białego znaku;)
źródło
d
ie
może więcej. Nie testowałem, ale powinno to być blisko:print(4*c+4*(6*b+"\n"))*3
. To 5 bajtów mniej.a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3
Brainfuck, 179 bajtów
Wiem, że to nie jest najlepszy wynik w tym wątku, ale chciałem spróbować pieprzyć mózg i spróbować.
Edycja: Podczas kopiowania musiałem popełnić błąd. Ta wersja powinna działać
źródło
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
cztery razy, a następnie nieskończony\
.Dyalog APL , 24 bajty
źródło
'/\'[4⌿5/2|+/¨⍳6 12]
(wymaga⎕io←0
)Pyke, 16 bajtów
Po dzisiejszej aktualizacji, która dozwolona
"
w literałach łańcuchowych, 17 bajtówWypróbuj tutaj!
źródło
MATL ,
1816 bajtówWypróbuj online!
Wyjaśnienie
źródło
Pyth, 22 bajty
Wypróbuj tutaj .
Wyjaśnienie:
Przepraszam, jeśli wyjaśnienie jest trochę trudne do zrozumienia, ale było trochę skomplikowane.
źródło
V ,
2221 bajtówEdytuj Jeden bajt wygrany, dzięki @DjMcMayhem:
Zmiany to:
Y4P
->4Ä
Użyj V-powielonej linii zamiast wbudowanego polecenia Vima (spowoduje to dodanie pustej linii na końcu akapitu)3äG
->3ä}
Duplikuj akapit zamiast całego bufora (aby uniknąć pustej linii wygenerowanej przez poprzednią zmianę)Oryginalny post
Wypróbuj online
Rozkłada się tak:
źródło
5á\5á/05ä$5Ä5x$p4Ä3äG
tj. ZastąpićY4P
,4Ä
ale z powodu, którego nie rozumiem, kopiuje dodatkową pustą linię ... Jeśli możesz oświeć mnie na tym, byłoby miło. Również jeśli znajdę trochę wolnego czasu, chętnie przyczynię się do tego języka (zwłaszcza numer 4 )Ä
jest synonimemdd
nieY
. Zwykle nie stanowi to problemu, ale powoduje pewne problemy, jeśli bufor ma tylko jedną linię lub jeśli znajdujesz się w ostatniej linii.3äG
się3ä}
, ponieważ nie będzie szarpać że ostatni znak nowej linii. v.tryitonline.net/…Galaretka ,
1716 bajtówWypróbuj online!
Dzięki 6710 (mil) za -1 bajt.
źródło
⁾/\ẋ6Wẋ4;U$ẋ3x5Y
Y
s!Właściwie 21 bajtów
Wypróbuj online!
-1 bajt od Adnana
Wyjaśnienie:
źródło
"/\"5*S
tworzenie ciągu ukośników?Rubinowy, 46 bajtów
Tworzy następujący ciąg (70 znaków, jeden zestaw więcej niż potrzeba), a następnie na przemian między próbkowanymi znakami
0..59
a5..64
nim.kod i dane wyjściowe
ciekawy błąd (7 zamiast 5)
źródło
APL, 30 bajtów
Jestem całkiem nowy w APL (używam APLX, ale powinno to działać w większości implementacji APL), więc jest to dość uproszczone rozwiązanie.
Wyjaśnienie:
źródło
C,
6661 bajtów5 bajtów zapisanych dzięki orlp.
Prosty druk znak po znaku. 61 znaków na wiersz, ostatni to znak nowej linii (ASCII 10), a pozostałe na przemian między
/
47 a\
92.źródło
i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);}
.i--
ale nie miałem czasu na to.Python 2, 63 bajty
W przypadku Python 3 wykonaj następujące czynności (65 bajtów):
źródło
/////\\\\\/////...
cztery razy, oddzieloneSamomodyfikujący Brainfuck , 91 bajtów
Wypróbuj online!
To samo, co moja pieprzona odpowiedź , ale używa 3 ostatnich znaków kodu źródłowego zamiast generować je w czasie wykonywania.
źródło
J,
312819 bajtówStosowanie
źródło
Oktawa,
5048 bajtówFunkcja anonimowa:
Możesz spróbować online tutaj . Po prostu uruchom powyższe polecenie, a następnie uruchom funkcję za pomocą
ans()
.Zasadniczo tworzy to tablicę o wartości 47, która ma 4 wysokie i 5 szerokich. Następnie tworzy drugą tablicę o wartości 92, która jest tego samego rozmiaru.
Dwie tablice są połączone w szachownicę
[A B;B A]
.''
Jest łączony także zmusić do konwersji ciągów znaków.Na koniec cała tablica jest replikowana 3 razy w dół i 6 razy w poprzek, aby uzyskać ostateczny rozmiar.
źródło
ans=
przed poduszką. Posiadanie tego w funkcji pozwala obejść ten problem, ponieważ oczekuje się, że zwróci odpowiedź do zmiennej, a nie ją wyświetli.ans()
). Co jest bez sensu, ponieważans()
nadal drukujeans
gdy prowadzony!ans()
jest uchwytem funkcji, który można wywoływać, więc nie trzeba przypisywać go do czegoś za pomocą, np.a=@...
Ponieważ jest domyślnie przypisanyans
jako uchwyt. Również nie jest drukowanyans=
po uruchomieniu, chyba że wyraźnie o to poprosisz, nie robiąc nic ze zwróconą wartością i nie dodając;
. Jeśli to zrobiszdisp(ans())
, wydrukuje tylko dokładne dane wyjściowe (nieans=
). Ale tak, ostrzeżenie jest denerwujące, jednak nie zdarzyło się to wcześniej, więc nie jest specyficzne dla języka, ale raczej dla tłumacza.disp(ans())
uzyskaniu danych wyjściowych, musisz dodać 12 bajtów do swojej odpowiedzi. Moim zdaniem jest to sposób, w jaki oktawa przedstawia swój wynik i jest w porządku.PHP,
7369 bajtówPróbny
http://ideone.com/z7N1Md
źródło
for($s='/\\';$i<1440;$i++)echo$i%60<1?'\n':'',$s[($i/5+($i/240|0))%2];
(zamień na\n
prawdziwy nowy wiersz).echo
nie jest funkcją, więc nie potrzebuje nawiasów. Ponadtoecho
może odbierać wiele wartości oddzielonych przecinkiem. To naprawdę eliminuje potrzebę tych nawiasów. A następnie, w twoim$s[...]
zewnętrznym obliczeniu nie trzeba też nawiasów, ponieważ jest ono zawarte w[]
. Korzystanie$s[($i/5+($i/240|0))%2]
ma ten sam efekt i jest krótsze.echo
iprint
zaakceptuj wiele parametrów. Aleprint
wymaga nawiasów z wieloma parametrami, jeśli są używane do przyrostu, stanu lub przypisania pętli.<1
, zmieniając wyrażeniaecho$i%60?'':' ',
, nową linię jako wyrażenie 3 w trójce.Java 7, 120 bajtów
Zepchnął wszystko w jedną pętlę. Beats Brainfuck, misja wykonana.
Zobacz online: https://ideone.com/pZjma3
źródło
Vim,
4427 bajtówEDYCJA Wiele bajtów wygranych dzięki @DrMcMoylex:
Oryginalna odpowiedź:
Nie jestem pewien, czy to naprawdę pasuje do zasad tej witryny, ale pomyślałem, że fajnie było spróbować:
Które można rozłożyć w następujący sposób:
źródło
5i/<esc>5a\<esc>0y$5P
na początku zaoszczędzić 9 bajtów.Brainfuck, 168 bajtów
źródło