Rozpoczęła się Zimowa Wyprzedaż Scream ™, a ty właśnie kupiłeś sobie intensywną minimalistyczną grę akcji, Super Square . Podczas grania dochodzisz do wniosku, że albo gra jest po prostu absurdalnie trudna, albo po prostu naprawdę w niej źle. W szczególności jest ten wzór „deszczu”, który wydaje się za każdym razem ...
Sfrustrowany decydujesz się na inne wyzwanie: narysuj wzór deszczu w sztuce ASCII!
Wejście
Dane wejściowe to pojedyncza dodatnia liczba całkowita wskazująca rozmiar wzorca n
, podana przez STDIN lub argument funkcji.
Wynik
Wyjście to wzór deszczu o określonym rozmiarze, zwrócony jako ciąg lub wydrukowany za pomocą STDOUT. Wiodące lub końcowe białe znaki przed lub po całym obrazie są w porządku. Ponadto obraz nie musi znajdować się po lewej stronie ekranu, ale musi być wyraźnie widoczny.
Oto n = 10
:
...................
| ----------------- |
| ............... |
| | ------------- | |
| | ........... | |
| | | --------- | | |
| | | ....... | | |
| | | | ----- | | | |
| | | | ... | | | |
| | | | | - | | | | |
| | | | | | | | | |
| | | | | - | | | | |
| | | | ... | | | |
| | | | ----- | | | |
| | | ....... | | |
| | | --------- | | |
| | ........... | |
| | ------------- | |
| ............... |
| ----------------- |
...................
Oto n = 5
:
---------
.......
| ----- |
| ... |
| | - | |
| | | |
| | - | |
| ... |
| ----- |
.......
---------
I na koniec oto n = 1
(tylko dwie najbardziej wewnętrzne ściany):
-
-
Konstrukcja (dla dodatkowej przejrzystości)
Obszar gry jest podzielony na dwie pary takich ćwiartek:
AAAAAAAAA
B AAAAAAA B
BB AAAAA BB
BBB AAA BBB
BBBB A BBBB
BBBBB BBBBB
BBBB A BBBB
BBB AAA BBB
BB AAAAA BB
B AAAAAAA B
AAAAAAAAA
Górne / dolne ćwiartki powinny się na przemian przechodzić między poziomymi ścianami reprezentowanymi przez łączniki -
, a odstępami cieniowanymi kropkami .
. Lewa / prawa ćwiartka powinny się na przemian przechodzić między przestrzeniami i pionowymi ścianami reprezentowanymi przez rury
|
. Główne przekątne są puste i zawsze powinny być wypełnione spacjami.
Wzór wielkości deszczu n
ma 2n
ściany, przy czym ściany z górnej / dolnej ćwiartki najbliżej środka i ściany naprzemiennie między ćwiartkami, gdy oddalamy się od środka.
Punktacja
To jest golf golfowy, więc kod w najmniejszej liczbie bajtów wygrywa.
Odpowiedzi:
CJam,
93 87 78 6159 bajtówPrzyjmuje wartość
n
przez STDINKilka przykładów:
Można dużo grać w golfa, co zrobię jutro.
Wypróbuj online tutaj
źródło
Haskell 150 bajtów
Zdaję sobie sprawę, że to nie wygra, chciałem tylko napisać mojego pierwszego codegolfa: D
Użyj, ładując do GHCi i sprawdzając,
q n
gdzien
jest rozmiar.Kilka przykładów:
Ktoś może zrobić lepiej, jestem dość nowy w Haskell.
źródło
Python,
204,198, 191 bajtów„r” to funkcja narzędzia, która zapisuje „b” w otoczeniu odzwierciedlonego „a”, z opcjonalnym ogranicznikiem (tak, parametry lambda mogą mieć wartości domyślne). „f” jest rekurencyjne, generując boki i środkowe części dla każdego poziomu „g” to funkcja deszczu, którą można wywołać za pomocą liczby całkowitej w celu zwrócenia żądanego tekstu.
źródło
Perl 5: 74 bajty (73 kod +
-p
)Pobiera parametr na wejściu (znak końca linii wymagany do poprawnego działania):
Nie golfowany:
źródło