Czy lubisz oglądać fajne timelapsy konstrukcji lub inne masywne prace wykonane w kilka minut? Zróbmy tutaj.
Będziemy patrzeć na koparkę kopiącą kamieniołom, robiąc zdjęcia każdego dnia, aby zobaczyć cały postęp. Twoim zadaniem jest pokazanie nam tego procesu!
Kamieniołom jest definiowany przez szerokość pierwszej warstwy.
Koparka jest definiowana przez jej zdolność do kopania w ciągu jednego dnia.
Wejście
Szerokość kamieniołomu. Liczba całkowita, zawsze> = 1.
Prędkość kopania koparki. Liczba całkowita, zawsze> = 1.
Wynik
Postęp kopania kamieniołomu każdego dnia. Zaczęło się od płaskiej, nietkniętej ziemi i zakończyło zakończonym kamieniołomem.
Zasady
Ostatniego dnia może być mniej jednostek do wykopania, niż jest w stanie koparka. Nadmiar pracy nie będzie nigdzie używany, więc powinieneś po prostu wysyłać w pełni wykopany kamieniołom.
Postęp wszystkich dni musi być jednocześnie widoczny na wyjściu. Nie można wyczyścić ani zastąpić postępu z poprzedniego dnia na wyjściu.
Końcowe i wiodące nowe wiersze dla każdego dnia wyjścia są dopuszczalne w dowolnej rozsądnej liczbie.
To jest golf golfowy , więc uczyń swój kod tak kompaktowym, jak to możliwe.
Wyjaśnienia
Prace rozpoczynają się od płaskiego podłoża. Długość wyświetlanego gruntu to szerokość kamieniołomu + 2. Dlatego zawsze po obu stronach kamieniołomu będzie jeden znak podkreślenia.
__________
Kopalnia wykopana wygląda tak dla równej szerokości:
_ _
\ /
\ /
\ /
\/
I tak dla nieparzystej szerokości
_ _
\ /
\ /
\ /
V
Oto przykłady postępu w kamieniołomach:
_ _______
V dug 1 unit
_ ______
\/ dug 2 units
_ ___
\___/ dug 5 units
_ _
\ __/ dug 10 units
\_/
Pełny przykład postępu. Szerokość kamieniołomu: 8. Prędkość koparki: 4 jednostki dziennie.
__________
_ _____
\__/
_ _
\______/
_ _
\ __/
\__/
_ _
\ /
\ __/
\/
_ _
\ /
\ /
\ /
\/
Narożniki
Koparka będzie musiała kopać ostatniego dnia dokładnie jej możliwości (prędkości)
Width: 7, Speed: 3
Width: 10, Speed: 4
Retina 0.8.2 ,
163156 bajtówWypróbuj online! Wyjaśnienie:
Konwertuj wejścia na unary. To nam daje
W¶S
.Zamień dane wejściowe i zduplikuj szerokość. To nam daje
S¶W¶W
.Oblicz objętość kamieniołomu. To nam daje
S¶W¶V
.Połącz dane wejściowe w jedną linię. To nam daje
S;W;V
.Oblicz stopień postępu dla każdego dnia na własnej linii. Każdy dzień ma format
S;W;D
, w którymD
znajduje0
się w pierwszym wierszu i zwiększa sięS
każdego dnia, aż do osiągnięciaV
.Usuń
S
i zwiększW
o 2 w każdej linii. To daje namG;D
na każdy dzień.Gdy
D
jest niezerowe, wykopaj jeden z wierszaD
lubG-2
z wiersza (aby zawsze pozostawić pierwszy i ostatni znak), przenosząc głębokość do następnego wiersza. Każda linia jest wcięta o jeden więcej>
niż poprzedni. Nowo wykopane linie obejmują również<
.Zmień wcięcie w spacje, a następujące
_
w -\
.Jeśli a
<
podąża za, a\
następnie zamień ją w aV
, jeśli podąża za, a_
następnie zamień ją w a/
. Usuń wszystkie<
s i;
s.źródło
Python 2 , 265 bajtów
Wypróbuj online!
źródło
1+i+a
doi-~a
.sum(range(0,w+1,2))
może byćw/2*(w/2+1)
t
można również wstawiać , co daje 257 bajtów .JavaScript (Node.js) ,
329315307300301298285275260254 bajtówWypróbuj online!
Wyjaśnienie
źródło
w
jest dziwne.f=
) i możesz zapisać kolejny bajt, curry parametrów (w=>s=>
).