Nie, nie
^^vv<><>BA
takie pisanki, prawdziwe pisanki, które malujemy.
Oto (strasznie narysowane) jajko.
__
/ \
/ \
| |
\____/
Na Wielkanoc malujemy je wzorami. Jak te:
__
/--\
/----\
|----|
\____/
__
/%%\
/%%%%\
|%%%%|
\____/
__
/~~\
/~~~~\
|~~~~|
\____/
Wyzwanie
Biorąc pod uwagę znak (do wydruku ascii) do pomalowania jajka, wydrukuj malowane jajko.
Przykłady:
&:
__
/&&\
/&&&&\
|&&&&|
\____/
#:
__
/##\
/####\
|####|
\____/
Okular
- Końcowe znaki nowej linii / spacje są dozwolone.
Odpowiedzi:
Brain-Flak ,
270268266 + 1 = 267 bajtów+1 od
-c
flagiWypróbuj online!
Chciałem napisać wyjaśnienie, ale najpierw zdrzemnąłem się i zapomniałem, jak działa cała ta myśl. Twoje domysły są równie dobre jak moje.
źródło
Python 2, 62 bajty
Super prosto. Wypróbuj online .
-1 bajt, dzięki @ mbomb007
źródło
Węgiel drzewny ,
302616 bajtówDwa bajty zapisane dzięki @Neil dzięki wypełnieniu po wykonaniu kształtu
Wypróbuj online!
Wyjaśnienie
Program działa najpierw poprzez utworzenie prawej połowy jajka, a następnie odzwierciedlenie go w celu wygenerowania lewej połowy.
źródło
←_↘
może być tak↓_
, ale w rzeczywistości można wypełnić po odzwierciedlać do 16 bajtów:__↗¹←↑¹↖²↓_‖M←¤S
.¤
Galaretka ,
2422 bajtówWypróbuj online!
W jaki sposób?
źródło
ṃ
dla najdłuższego wyjaśnienia pojedynczego bajtu.Sed, 43 znaki
Przykładowy przebieg:
źródło
JavaScript (ES6),
534947 bajtówJestem pewien, że uda mi się z tego trochę wyciągnąć -
\
denerwowanie mnie to denerwowanie.s=c+c
przypisania zmiennej do pierwszego zestawu{}
.c+=c
zamiasts=c+c
&s=s+s
, częściowo dzięki Neilowi, który zauważył to ulepszenie w tym samym czasie, w którym je robiłem.Maluj własne!
Pokaż fragment kodu
źródło
<pre><code>
s. Dobra robota.pre
.c+=c
?f=\n
części dla liczby bajtów. Tylko tak działa fragment kodu.Alice ,
5352 bajty, niekonkurująceDzięki Leo za pośrednie zaoszczędzenie 1 bajtu.
Wypróbuj online!
Niestety musiałem naprawić błąd
y
(transliteracja), aby to działało, więc oznaczyłem go jako niekonkurujący.Wyjaśnienie
Podstawową ideą jest utworzenie ciągu jajka, ale
~
jako symbolu zastępczego dla dwóch kopii danych wejściowych. Jednak inne znaki wejściowe nie są szczególnie przyjazne dla ciągów Alice, ponieważ nie mogą one zawierać linii znaków i wszystkie/\_|
będą wymagały ucieczki (ponieważ są traktowane jak lustra i ściany). Więc mogę zapisać niektóre bajty, używając również symboli zastępczych dla nich, a następnie transliterując je. Symbolami zastępczymi dla/\_|
są.[^{
, które są po prostu postacią tuż przed tą, którą reprezentują. Do linii używam}
.Teraz kod ... cały program można rozwiązać w trybie porządkowym, ponieważ potrzebujemy tylko przetwarzania ciągów, a nie przetwarzania liczb całkowitych. Ponadto nie potrzebujemy żadnego warunkowego przepływu sterowania. Cały program można wyrazić liniowo. Ogólna struktura programu jest następująca:
W takim programie adres IP przeskakuje w górę iw dół przez
...
sekcję, najpierw wykonując tylko połowę znaków. Następnie dwa/
na końcu przesuwają adres IP o jedną komórkę w prawo, aby w drodze powrotnej wykonał drugą połowę (ponownie podskakując w górę i w dół), aż w końcu@
zakończy działanie programu. Jeśli więc rozwiniemy zabawną zygzakowatą strukturę pośrodku, program, który wykonujemy, wygląda tak:Przejdźmy przez to:
źródło
PowerShell ,
504948 bajtówWypróbuj online!
Prosta zamiana łańcucha na łańcuch literalny. Niewiele miejsca na grę w golfa.
-1 bajt dzięki HyperNeutrino; -1 bajt dzięki Wubs
źródło
Marchewka , 34 bajty, niekonkurująca
Nie konkuruje, ponieważ właśnie naprawiłem błąd interpretera w wiodących białych znakach, które nie były wyświetlane.
Wypróbuj online tutaj .
Po pierwsze, jesteśmy w trybie karetki, w którym każda postać jest wypychana na „stos”. I wreszcie „stos” zostaje wydrukowany jako wydruk.
W trybie karetki
#
popycha dane wejściowe, więc instancje#
są w zasadzie zastępowane danymi wejściowymi (FYI#
to jednobajtowy program cat).źródło
SOGL V0.12 ,
211816 bajtówWypróbuj tutaj!
Cały program jest skompresowany:
gdzie
ŗ
zostaje zastąpiony przez dane wejściowe.13 bajtów prawie też działa, ale robi niepotrzebne rzeczy przy pewnych wejściach.
źródło
@,ŗ -@ŗ
05AB1E ,
343332 bajtyWypróbuj online!
Wyjaśnienie
źródło
•jÀňiXƒÐ[Z•6B6ôvy5ÝJ"_ |/\"¹«‡,
dla 32, ale zupełnie inaczej. To mnie oszukało i sprawiło, że pomyślałem, że mogę użyć palindromize ... Cholera, że())(
i/\\/
są palindromy.Python 3.6 , 53 bajty
x
i zwracająca ciąg znaków..format()
-{}
załączone części tego ciągu są kodem do oceny.Nie widzę jednak internetowego tłumacza dla Pythona 3.6.Wypróbuj w repl.it (mówi 3.5, ale jest 3.6)
źródło
Retina 0.8.2 ,
4341 bajtów-2 bajty dzięki Kevin Cruijssen
Wypróbuj online!
źródło
Brainfuck -
257 bajtów181 bajtówGra w golfa: wersja na żywo kliknij tutaj
Nie jestem zawodowym golfistą. To jest moja próba, o ile pamiętam: D
Wydajność:
Niegolfowany (+ komentarze):
źródło
05AB1E ,
322926 bajtów (Dzięki Emigna / Adnan)Wypróbuj online!
Wersja 29-bajtowa (wymagana jest także inteligentniejsza wersja bez kodowania ze względu na kodowanie nowego wiersza):
05AB1E , 29 bajtów (Emigna)
Wypróbuj online 2!
26 bajtowe rozszerzenie sugestii Emigny, używając S do rozdzielenia znaków na tablicę, a następnie [b] do interpolacji każdej cyfry z odpowiednią lokalizacją w poprzedniej tablicy. Jest to zasadniczo transliteracja elementarna (inteligentna).
05AB1E , 26 bajtów (Adnan)
Wypróbuj online 3!
źródło
Sè
- sneaky sneaky ...Admigna
, tak naprawdę nie poznałbym języka bez obu waszych stałych przykładów.PHP, 51 bajtów
PHP, 58 bajtów bez fizycznych podziałów liniowych
uruchom to z
-R
opcją61 bajtów
źródło
-R
nie jest parametrem, jest opcją.man php
nazywa je parametrem : „Można również przetwarzać standardowy wiersz po wierszu za pomocą parametru -R lub -F.”BF,
142140 bajtówJest to podzielone na dwie linie dla jasności; nowa linia nie jest liczona.
Pisanie tego typu w BF jest dość łatwe, ale nie jest trywialne, jak zoptymalizować kolejność komórek, aby zminimalizować ruch. Napisałem scenariusz brutal-forcer, aby wypróbować wszystkie kombinacje i znaleźć najkrótszy. Grałem trochę w golfa, aby wziąć pod uwagę okazję do gry w golfa, której nie wziąłem pod uwagę.
źródło
pieprzenie mózgu , 114 bajtów
Wypróbuj online!
Użyłem BF Crunch tutaj, aby znaleźć bardziej optymalny sposób na generowanie poszczególnych postaci.
źródło
C (gcc) ,
958885 bajtówPodziękowania dla Alberta za -7 bajtów
Dzięki także pułapowi -3 bajtów
Wypróbuj online!
źródło
*q
po prostu zagnieżdżenia go bezpośrednio w pętli for, aby zaoszczędzić 5 bajtów.char*s;f(c){for(s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
*s
wewnątrz argumentu deklaracji for-loop:f(c){for(char*s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
1
jest49
w ASCII, ale to 2 bajty, użyj czegoś o wartości od 0 do 9, na przykład znak tabulacji `` jest wartością ASCII9
.*s;f(c){for(s
zamiastf(c){for(int*
SpecBAS - 70 bajtów
?
jest skrótem dlaPRINT
polecenia, a apostrof przenosi kursor do następnego wiersza.źródło
Röda , 46 bajtów
Wypróbuj online!
źródło
Python, 59 bajtów
źródło
Lua, 66 bajtów
((([[[#NailedIt]])))
źródło
Siatkówka , 41 bajtów
Wypróbuj online!
źródło
Japt , 35 bajtów
Wypróbuj online!
41-bajtowe rozwiązanie:
Wypróbuj online!
źródło
d
to bajt krótszy.[R], 65 bajtów
Dość mało widowiskowy, proszę znaleźć krótszy w R ... To twój podstawowy gsub
źródło
C ++ 208 bajtów
W odpowiedzi na komentarze: Jest to kompletny post.
źródło
C # , 56 bajtów
Grał w golfa
Nie golfił
Nieczytelny czytelny
Pełny kod
Wydawnictwa
56 bytes
- Wstępne rozwiązanie.Notatki
Wydrukowane wyniki w podanym linku nie będą wyglądały na udawane, ponieważ użyta czcionka nie jest jednolita.
źródło
C (gcc) , 87 bajtów
printf bez stdio.h powoduje ostrzeżenia, ale nie ma błędów, umożliwiając pomyślną kompilację.
Wyjaśnienie
Instrukcja Printf, która umieszcza wszystko w jednym wierszu, formatując znak dekoracyjny za pomocą% c.
Wypróbuj online
źródło
C (gcc) , 84 bajtów
Wypróbuj online!
źródło