Rzeźbiarz ma za zadanie stworzyć rzeźby z lodu w nowym muzeum na Grenlandii. Jego szef otrzymał specyfikacje, które składają się z dwóch liczb: [s, m] lub rozmiaru i topnienia. Rozmiar musi być liczbą nieparzystą. Dostał kilka zdjęć prawdziwych sopli:
vvvvv [5, 0]
vvv
v
vvvvvvv [7, 0]
vvvvv
vvv
v
vvvvvvv [7, 2]
vvvvv
vvvvvvv [7, 3]
vvv [3, 1]
On potrzebuje programu, który pomoże rysować. Dowolny język dozwolony. Program musi przyjmować S i M, dowolna metoda wprowadzania danych jest możliwa do zaakceptowania. Następnie musisz wydrukować jego reprezentację w stylu ascii.
S to ile v
s jest na pierwszej warstwie. M to liczba warstw wyciętych z dołu.
To jest golf golfowy , więc jak zwykle ta konkurencja jest oparta na bajtach . Białe znaki liczą się do liczenia bajtów. Najmniej bajtów wygrywa.
Edycja: Nigdy nie otrzymasz zestawu liczb, które nic nie rysują, na przykład [5, 3]. Sprawdzanie kodu nie jest jednak wymagane.
Odpowiedzi:
05AB1E , 11 bajtów
Wypróbuj online!
źródło
V , 15 bajtów
Wypróbuj online!
Dość bezpośredni.
źródło
05AB1E , 12 bajtów
Kod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
;-Ý·¹+'v×.c
zaoszczędziłby jeden bajtMATL , 22 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Galaretka , 19 bajtów
TryItOnline!
W jaki sposób?
źródło
J’
(zakres zmniejszonej długości) również miałby ten sam efekt, ale nie ma obniżonej wersjiJ
iLḶ
jest to trochę urocze :)Partia, 142 bajty
źródło
Rubinowy,
4644 bajtów2 bajty zapisane dzięki GB
źródło
puts
nie wymaga spacji?v*(s-2*i)
używać?v*s;s-=2
Python,
7673 bajtówEdycja: Zapisano 3 bajty dzięki @TuukkaX i @ Challenger5 (Dzięki!)
źródło
print
następuje bezużytecznalambda s,m:"\n".join([' '*(s/2-i/2)+'V'*i for i in range(s,m*2,-2)])
def f(s,m):
, oszczędzając dwa bajty.def f()
7lambda
to 7. z końcówką Challenger5, def jest w rzeczywistości krótszy. przynajmniej tak myślę :)print
, więc jest o 4 znaki krótszy (lambda s,m:"\n".join(...)
), ponieważ wlambda
zasadzie ma niejawny zwrot.JavaScript (ES6), 57 bajtów
Generuje końcowy znak nowej linii. Jeśli wiodący nowy wiersz jest akceptowalny, to dla 54 bajtów:
źródło
Python 2, 63 bajty
źródło
Turtlèd , 53 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
Java,
138137 bajtówNie golfowany:
Aktualizacja: Jeden bajt i ciało pętli zniknęły dzięki @ClaytonRamsey.
źródło
C, 83 bajty
Niegolfowane i użytkowanie:
źródło
Pyth, 21 bajtów
Program, który pobiera dane,
S
po których następujeM
rozdzielenie znakiem nowej linii i wypisuje wynik.Zestaw testowy
Jak to działa
źródło