Musisz napisać program lub funkcję w dowolnym języku, który generuje ten wzorzec:
~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~
|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||~|
||~|||||||||||||||||||||||||||||||||||||||||||||||||||||||~||
|||~|||||||||||||||||||||||||||||||||||||||||||||||||||||~|||
||||~|||||||||||||||||||||||||||||||||||||||||||||||||||~||||
|||||~|||||||||||||||||||||||||||||||||||||||||||||||||~|||||
||||||~|||||||||||||||||||||||||||||||||||||||||||||||~||||||
|||||||~|||||||||||||||||||||||||||||||||||||||||||||~|||||||
||||||||~|||||||||||||||||||||||||||||||||||||||||||~||||||||
|||||||||~|||||||||||||||||||||||||||||||||||||||||~|||||||||
||||||||||~|||||||||||||||||||~|||||||||||||||||||~||||||||||
|||||||||||~|||||||||||||||||~|~|||||||||||||||||~|||||||||||
||||||||||||~|||||||||||||||~|||~|||||||||||||||~||||||||||||
|||||||||||||~|||||||||||||~|||||~|||||||||||||~|||||||||||||
||||||||||||||~|||||||||||~|||||||~|||||||||||~||||||||||||||
|||||||||||||||~|||||||||~|||||||||~|||||||||~|||||||||||||||
||||||||||||||||~|||||||~|||||||||||~|||||||~||||||||||||||||
|||||||||||||||||~|||||~|||||||||||||~|||||~|||||||||||||||||
||||||||||||||||||~|||~|||||||||||||||~|||~||||||||||||||||||
|||||||||||||||||||~|~|||||||||||||||||~|~|||||||||||||||||||
Wynik składa się z 20 wierszy po 61 znaków.
Zasady
- Standardowe luki są zabronione
- Na końcu wyniku może znajdować się pojedynczy znak nowej linii
- W żadnym wierszu wydruku nie może być żadnych końcowych białych znaków
Bez końcowego znaku nowej sumy kontrolnej md5 wyniku jest fde4e3b4606bf9f8c314131c93988e96
.
Z końcowym znakiem nowej linii suma kontrolna wyjścia md5 wynosi 1f0b43db4fec6594be202c8339024cb7
.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
Odpowiedzi:
C (gcc) ,
97828180 bajtówGrał w golfa 15 bajtów po nauce, że
abs
jest wbudowany w C, dodatkowy bajt dzięki Rogemowi za wskazanie, że deklaracje moich zmiennych można przenieść do funkcji, a kolejny bajt dzięki pułapkowi cat za sugerowaniex=31;--x+31
zamiastx=-31;++x<31
.Wypróbuj online!
Daje to końcowy znak nowej linii. Funkcja
f
wykonuje dane wyjściowe.Wyjaśnienie
Dane wyjściowe można określić jako wykres.
(Te
+
są pokazane tylko w celu wyjaśnienia i przedstawiają osie.)Równanie tego wykresu toy=abs(10−abs(x)) co można zobaczyć tutaj w tym łączu do wykresu Desmos .
W funkcji
f
mamy dwie pętle for, które iterują każdą współrzędną na tym wykresie.y
przechodzi od20
do,1
a x przechodzi od-30
do30
.Dla każdego
x
sprawdzamy, czyabs(10-abs(x))
jest równyy
, wykonującabs(10-abs(x))-y
w trójskładniku. Jeśli są one równe, daje0
to falsey wartość w C, w przeciwnym razie będzie to wartość dodatnia. Następnie w trójskładnikowegoabs(10-abs(x))-y?"|":"~"
, mamyprintf
odpowiednio.I po każdej linii
puts("")
wypisujemy nowy wiersz za pomocą , i w ten sposób funkcja wypisuje znak końca nowej linii.źródło
f(x,y)
zamiastx,y;f()
Węgiel drzewny ,
1615 bajtów-1 bajt dzięki notjagan
Wypróbuj online!
źródło
M
i przejście niejawnie.R ,
7067 bajtów3 bajty dzięki Giuseppe.
Wypróbuj online!
źródło
""
na a1
dla -1.Galaretka ,
1816 bajtówWypróbuj online!
źródło
Python 2.7,
16313813513311391 bajtówWypróbuj online!
Edytuj 1: -25 bajtów: zmieniłem algorytm po tym, jak poczułem się trochę ambitny. : P
Edytuj 2: -3 bajty: dzięki uprzejmości Felipe Nardi Batista
Edytuj 3: -2 bajty: dzięki uprzejmości shooqie
Edycja 4: -20 bajtów: dzięki uprzejmości notjagan
Edytuj 5: -22 bajtów: dzięki uprzejmości Dziurawej Zakonnicy
źródło
a,b,c='1','2','3'
jest takie samo jaka='1';b='2';c='3'
i umieszczenie każdego z nich we własnej linii, ale możesz zyskać bajty poprzez rozpakowanie ciągów takich jaka,b,c='123'
n<m
krótszy niżn-m<0
?/// , 231 bajtów
Wypróbuj online! Lub zobacz tutaj interaktywnie !
źródło
WendyScript , 65 bajtów (wyklucz nowy wiersz)
Wypróbuj online!
Kieruje się tą samą zasadą, co odpowiedź C podana powyżej. Pierwszy wiersz jest
abs
funkcją, drugi wiersz prowadzi dwa dla pętli i wyjść~
lub|
na podstawie wykresu. Ostatni""
służy do wyświetlania nowej linii po każdej pętliy
.źródło
abs
funkcji od funkcji głównej.Vim, 59 bajtów
Gdzie
^[
jest<ESC>
kluczźródło
:11<CR>
może być11G
Japt , 32 bajty
Wypróbuj online! Pamiętaj, aby rozwinąć okno wyjściowe.
Wyjaśnienie
Ustaw
U
na|
powtarzanych 20 razy.Ustaw
V
na zakres[0,9]
(AÆ
) odwzorowany przez:U
(niejawny) ze znakiem w indeksieX
(bieżąca wartość) ustawionym na (h
)~
.Zestaw
W
doV
z każdej linii obrócony 10 (A
) zwęgla rację.Utwórz tablicę:
V, W, U
iV
przy każdej linii odwróconej (w
). To jest teraz lewa połowa kształtu, obrócona o 90 ° w lewo.Spłaszcz tablicę (
c
), palendromize (ê
), obróć o 90 ° w prawo (z
) i połącz z nowymi liniami (·
).źródło
Pędzel , 36 bajtów
niekonkurujący
Wyjaśnienie
To mi przypomina, że muszę dodać operację dublowania.
źródło
Oktawa ,
1575754 bajtówGrałem w golfa dalej, dzięki innym odpowiedziom i komentarzom.
Podszedłem do niego jak do innej odpowiedzi z funkcją abs (10-abs (x)), a następnie użyłem odpowiednich znaków ASCII do wydrukowania obrazu.
źródło
Pyth , 22 bajty
Wypróbuj online!
źródło
V , 30 bajtów
Wypróbuj online!
źródło
Galaretka , 18 bajtów
Wypróbuj online!
źródło
Bubblegum , 90 bajtów
Wypróbuj online!
źródło
MathGolf , 22 bajty
Wypróbuj online!
Wyjaśnienie
Prawdopodobnie można oderwać od tego 2-3 bajty, zobaczę, co da się zrobić.
źródło
C (gcc) , 75 bajtów
Wypróbuj online!
Całkowicie zmieniony od odpowiedzi szarlatanu Krowy
źródło
Positron , 165 bajtów
Wypróbuj online!
Myślę, że Positron ma za dużo błędów. Powinienem go zaktualizować do TIO, ponieważ wtedy
++
faktycznie zadziała.źródło
Mathematica,
7875 bajtówz wyjątkiem tego, że
\n
jest zastąpiony przez rzeczywistą nową linię . Wypróbuj online! (Z jakiegoś powodu na początku linii w Mathics są dodatkowe spacje, ale w Mathematica działa dobrze .)Wymyśliłem własne zgłoszenie, ale potem Kritixi Lithos dodał wyjaśnienie ich i było dość podobne do mojego, ale przy użyciu nieco bardziej sprytnej formuły, więc teraz jest to tylko część tej odpowiedzi. (Idź i przeczytaj ten i głosuj!)
źródło
Bubblegum , 93 bajty
Wypróbuj online!
źródło
JavaScript (ES6), 87 bajtów
źródło
Lua, 193 bajtów
Zauważ, że Lua nie może wydrukować czegoś bez utworzenia nowej linii. Z tego powodu muszę złamać jedną z zasad.
Minimalnie zminimalizowane w dużym stopniu:
Niektóre zmiany zostały wprowadzone podczas minifikacji, co powoduje, że program jest mniej rozszerzalny, ale mniejszy.
Spróbuj go: https://tio.run/##PY7LCoMwEEX3@YqQVVJTcWwRCp0vKV1oNa1QJ0UjGPr49TRq6eoO91wOcx/LEDp8vs1IF9da4lc5aa9aI6djkSt3a4h1pynxmwLOKD5iJog7sD2Pmf9yD@u0QrKOV6yhmkVTAtonUla8pHoLKm5BqZmtHHSmTCw9ZhoOvLZsQCHMogRdwNoMaSr/L9hevMSiePQtOTnMdwhf
Nie jestem pewien, czy ktoś to zrobił wcześniej, ale próbowałem minimalizować, ładując program jako ciąg znaków i używając gsub (szukaj / zamień). Niestety program powiększył się. Jednak jeśli ten program byłby wystarczająco duży, dałby mniej bajtów.
Ze względu na jego względną bliskość do rzeczywistego wyniku (240 bajtów, tylko 41 więcej), pomyślałem, że go opublikuję. Gdyby ten program miał ponad 350 bajtów, prawdopodobnie nastąpiłaby redukcja.
źródło
Java 8, 113 bajtów
Mam przeczucie, że czeki (na
j==i|j+i==60|i>9&(j-i==20|j+i==40)
pewno można grać w golfa, łącząc wiele czeków w jeden.Wyjaśnienie:
Wypróbuj tutaj.
źródło
Perl 5 , 79 bajtów
Wypróbuj online!
źródło
Tcl , 104 bajty
Wypróbuj online!
Tcl , 105 bajtów
Wypróbuj online!
Tcl , 109 bajtów
Wypróbuj online!
Tcl,
143 133 123110Wciąż dużo nie golfistów, ale rozwinę to po:
próbny
źródło
05AB1E ,
2019 bajtówWypróbuj online.
Wyjaśnienie:
20Ýû31∍û
generuje listę:źródło