Napisz najkrótszy możliwy program, który przyjmuje zestaw różnych liczb całkowitych dodatnich i generuje renderowanie ASCII koncentrycznych sześciokątów o tych długościach boków, wykonanych z ukośników, znaków podkreślenia, spacji i nowych linii.
Najkrótszy program w bajtach, liczony przez https://mothereff.in/byte-counter, wygrywa.
Przykłady
(Wyglądają lepiej przy mniejszych odstępach między wierszami).
Jeśli dane wejściowe to 1wyjście powinno być sześciokątem o długości boku 1:
__
/ \
\__/
Zauważ, że dwa podkreślenia są używane na górze i na dole sześciokąta, więc jest on bardziej proporcjonalny.
Ogólnie rzecz biorąc, sześciokąt w rozmiarze N zawiera N cięć po każdej stronie pod kątem i 2 * N podkreślenia na górze i na dole.
Jeśli dane wejściowe to 1 2dane wyjściowe, powinny to być koncentryczne sześciokąty o długości boku 1 i 2:
____
/ __ \
/ / \ \
\ \__/ /
\____/
Jeśli wejście jest 1 3wyjściem powinno być:
______
/ \
/ __ \
/ / \ \
\ \__/ /
\ /
\______/
Jeśli dane wejściowe to 1 3 2wyjściem powinno być:
______
/ ____ \
/ / __ \ \
/ / / \ \ \
\ \ \__/ / /
\ \____/ /
\______/
itp.
Zasady we / wy
Dane wejściowe muszą pochodzić z wiersza polecenia lub standardowego wejścia, ale mogą być w dowolnym dogodnym formacie.
Na przykład możesz podać każdą liczbę jako argument wiersza poleceń: > myprogram 1 3 2lub możesz poprosić użytkownika o wprowadzenie liczb w postaci wstępnie sformatowanej listy:[1, 3, 2] .
Dane wyjściowe muszą przejść do standardowego lub najbliższego odpowiednika Twojego języka.
Dodatkowe zasady
- Dane wejściowe zawsze będą zbiorem wyraźnych liczb całkowitych dodatnich, niekoniecznie w dowolnej kolejności .
- Dane wyjściowe muszą ...
- nie może zawierać żadnych innych znaków
/\ _i znaków nowej linii. - nie mają spacji końcowych ani niepotrzebnych spacji wiodących.
- nie zawierają obcych początkowych linii, ale mogą mieć jedną opcjonalną nową linię.
- nie może zawierać żadnych innych znaków
- Jeśli nic nie jest wprowadzone, to nic nie wypisuje (z wyjątkiem jednej nowej linii).
- Jeśli to pomoże, możesz założyć, że wejściowe liczby całkowite są mniejsze niż 2 16 .
1(lub dowolna liczba) odnosi się do sześciokąta o boku o długości 1. (Z zastrzeżeniem, że 1 cięcie = 2 podkreśla). Tak więc 1zawsze będzie odnosić się do najbardziej wewnętrznego sześciokąta.
1odnosi się do najbardziej wewnętrznego lub najbardziej zewnętrznego sześciokąta?