Zainspirowany tym wyzwaniem
Cel:
Celem jest narysowanie fal uderzających w plażę.
Wejście:
Jako dane wejściowe otrzymasz 3 liczby całkowite (w dowolnym formacie).
Pierwszą liczbą całkowitą będzie długość rysunku Drugą liczbą całkowitą będzie indeks piaskownicy, w której fale zaczną szczypać (co najmniej 3 przestrzenie od plaży)
Trzecią liczbą całkowitą będzie odstęp między falami (co najmniej 3, może być większa niż długość rysunku, w takim przypadku narysujesz tylko jedną falę)
Wynik:
Wyjściem będzie pudełko znaków, które pokazuje fale rozbijające się o plażę. Losowanie powinno zakończyć się, gdy pierwsza fala zakończy się uderzeniem w plażę.
Początkowo fala jest wyświetlana jako swell ( _-_
).
Gdy fala mija piaskownicę, zaczyna się crest ( /c_
).
Wreszcie fala uderza w plażę ( /c.
=> _-_
=> ___
=> __.
).
Przykłady:
Wejście: 14 4 6
Wynik:
-___________..
_-__________..
__-_________..
___-________..
___/c_______..
____/c______..
-____/c_____..
_-____/c____..
__-____/c___..
___-____/c__..
___/c____/c_..
____/c____/c..
-____/c____-_.
_-____/c_____.
__-____/c___..
Wejście: 10, 2, 11
Wynik:
-_______..
_-______..
_/c_____..
__/c____..
___/c___..
____/c__..
_____/c_..
______/c..
_______-_.
_________.
________..
Wejście: 6 0 3
c___..
/c__..
_/c_..
c_/c..
/c_-_.
_/c__.
c_/c..
Zasady:
Standardowe Luki zastosowanie
To jest golf golfowy, więc wygrywa najkrótszy kod
·
nie jest ASCII, co może wykluczać niektóre języki. Czy można go zastąpić.
?·
zamiast okresu ASCII? (W rzeczywistości jest to dość duża wygrana w moim kodzie).Odpowiedzi:
JavaScript (ES6),
250243 bajtówTen kod zakłada stronę kodową # 1252 i używa
·
znaku (0xB7). Pobiera dane wejściowe jako 3 różne parametry(a,b,c)
.Jak to działa
Ten kod zaczyna się od łańcucha, takiego jak
-______··
i stosuje kolejne wyrażenia regularne na każdej iteracji w celu animowania fal.Na przykład
-__
jest zastąpiony przez_-_
.Z początku wyglądało to na rozsądny pomysł. Jednak fakt, że ciąg może zaczynać się od
c
(podobnie jak w 3. przypadku testowym), znacznie komplikuje sytuację.Przypadki testowe
Pokaż fragment kodu
źródło
Partia,
273243 bajtówUwaga: końcowe miejsce w linii 4. Gdyby tylko dwie postacie na plaży były różne, mógłbym zapisać 3 bajty i faktycznie pokonać JavaScript!
źródło