13 marca uznawany jest za Narodowy Dzień Klejnotu , który jest tematem tego wyzwania. Tak więc, biorąc pod uwagę liczbę całkowitą, n
która n
jest większa niż 0, utwórz klejnot ASCII. Na przykład:
n = 1 n = 2 n = 3
______
____ / \
__ / \ \ /
/ \ \ / \ /
\ / \ / \ /
\/ \/ \/
Dno jest zdefiniowane jako sam dół klejnotu do najwyższej pary \/
. Reszta jest górą. W powyższym przykładzie gdzie n = 1
:
Bottom: \ / Top: __
\/ / \
Jak widać, spód jest wykonany z n + 1
warstw \/
z (1 * lines from the bottom) * 2
odstępami pomiędzy nimi, z maksymalną liczbą n
linii od dołu klejnotu. Jeśli weźmiemy drugi klejnot ( n = 2
), możemy zobaczyć, że:
____
/ \
\ / 2 (or n) layers from the bottom with 1*2*2 or 4 spaces in between \/
\ / 1 layer from the bottom with 1*1*2 or 2 spaces in between \/
\/ The bottom (0 layers) with 1*0*2 spaces or 0 spaces in between \/
Góra składa się z jednej pary /\
z n*2
odstępami pomiędzy nimi z n*2
podkreślnikami na górze.
Zasady
- Musi mieć możliwość przyjmowania niezerowych liczb całkowitych dodatnich jako danych wejściowych użytkownika
- Musisz stworzyć klejnot ze specyfikacjami zdefiniowanymi powyżej (ponownie tutaj):
- Góra składa się z jednej pary
/\
zn*2
odstępami pomiędzy nimi zn*2
podkreślnikami na górze. - Dno jest wykonane z
n + 1
warstw\/
z(1 * lines from the bottom) * 2
odstępami pomiędzy nimi, z maksimumn
linii od dołu klejnotu.
- Góra składa się z jednej pary
- Końcowe znaki nowej linii po klejnocie lub końcowe spacje w każdej linii są dozwolone.
- Niedozwolone są standardowe luki
Zwycięskie kryteria
Najmniej bajtów wygrywa!
Odpowiedzi:
Węgiel drzewny , 17 bajtów
Kod:
Wyjaśnienie:
Bardzo schludny komenda
‖M
, która automatycznie lusterka/
język\
.Wykorzystuje kodowanie węgla drzewnego .
Wypróbuj online!
źródło
05AB1E ,
2720 bajtówWypróbuj online!
Wyjaśnienie
źródło
D„/\„\/‡
naÂ
.Python 2,
1019895 bajtówWypróbuj online!
Anonimowa funkcja, która przyjmuje dodatnią liczbę całkowitą i zwraca ciąg znaków
Python 3.6, 92 bajty (Podziękowania dla Bena Frankela)
Nie mogłem znaleźć tłumacza online dla tej wersji, ale jest on nieco krótszy z powodu f-stringów w wersji v3.6
źródło
lambda n:f' {"__"*n}\n/{" "*n}\\\n'+'\n'.join(' '*i+'\\'+' '*(n-i)+'/'for i in range(n+1))
. Korzystając z f-stringów.PHP, 123 bajtów
143 bajtów pierwsza wersja
Wypróbuj tutaj!
źródło
V ,
282726 bajtów1 bajt zapisany dzięki @DJMcMayhem przy użyciu
>
zamiastÉ
<esc>
jest0x1b
Wypróbuj online!
Hexdump:
Wyjaśnienie
Top:
Dolny:
źródło
É<space>
do>
którego na końcu makra jest domyślnie wypełnione>>
>
wcięcia o jedną spację zamiast o jedną tabulację?set expandtab
iset shiftwidth=1
Röda , 71 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 80 bajtów
źródło
Python 3,
107105 bajtówBierze int ze Stdina
źródło
MATL , 34 bajty
Wypróbuj w MATL Online!
Wyjaśnienie
źródło
PowerShell ,
76, 74 bajtyUwaga: przykład online zawiera trochę zawijania jako demonstrację. Umieść w funkcji lub skrypcie PoSH do wykonania.
Wypróbuj online!
źródło
' '*$i++
zamiast' '*($n-$_)
.C, 131 bajtów
Wypróbuj online!
źródło
i,j;f(n){for(p(" ");i++<n*2;p("_"));for(p("\n/%*c\n",n*2+1,92);j++<n+1;p("%*c%*c\n",j,92,(n-j)*2+3,47));}
Pyth, 44 bajtów
Spróbuj!
wyjaśnienie
Kod składa się z 3 części:
źródło
Python3, 104 bajty
Program pobiera liczbę całkowitą ze STDIN i zwraca klejnot do STDOUT.
źródło
Pip , 43 bajty
42 bajty kodu, +1 dla
-n
flagi.Pobiera dane wejściowe jako argument wiersza polecenia. Wypróbuj online!
Wyjaśnienie
Konstruuje pierwsze dwie linie osobno, a następnie resztę klejnotu za pomocą operacji na mapie:
Inne rozwiązanie
Również 42 + 1 bajtów, tym razem z
-l
flagą:TIO
źródło
Pyth, 38 bajtów
źródło
C, 115 bajtów
Wypróbuj online!
C, 123 bajty
Chociaż wyzwanie nie wymaga tego, kosztem 8 bajtów funkcja może zostać ponownie użyta (pierwsze rozwiązanie pozwala zaoszczędzić 8 bajtów, polegając na niejawnej inicjalizacji zmiennych globalnych).
Wypróbuj online!
źródło
Partia, 152 bajty
Testy:
źródło
C #, 187 bajtów
Jestem pewien, że istnieje bardziej kompaktowe rozwiązanie, ale to moja pierwsza próba:
Wypróbuj online ..
źródło
JavaScript (ES6), 93 bajty
Próbny
Pokaż fragment kodu
źródło
dc , 121 bajtów
Wypróbuj online!
źródło
Perl 5
10994 + 1 (dla flagi -p) = 95 bajtówWypróbuj online!
Można uruchomić tak:
Nie golfił
Wyjaśnienie
źródło