Każdy regularny sześciokąt może być wyłożony diamentami, na przykład tak:
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
Rozważymy powyższe kafelki wielkości 1
(ponieważ boki diamentów są wykonane z jednego /
lub \
każdego). Ten sam kafelek wielkości 2
wyglądałby tak:
____________
/ / /\ \
/___/___/ \___\
/ /\ \ /\ \
/___/ \___\/ \___\
/\ \ / /\ / /\
/ \___\/___/ \/___/ \
\ / /\ \ / /\ /
\/___/ \___\/___/ \/
\ \ / /\ \ /
\___\/___/ \___\/
\ \ \ / /
\___\___\/___/
Twoim zadaniem jest otrzymanie takiego kafelka grafiki ASCII (wielkości 1
) jako danych wejściowych, wraz z dodatnią liczbą całkowitą N
(w postaci dziesiętnej lub jednostkowej), określającą rozmiar pożądanego wyniku. Następnie powinieneś wypisać skalowaną wersję tego samego kafelka.
Zauważ, że sześciokąt może mieć dowolny rozmiar i tak mały jak 1x1x1 (zawierający trzy diamenty).
Ani dane wejściowe, ani wyjściowe nie mogą zawierać spacji końcowych ani więcej spacji wiodących niż jest to konieczne do wyrównania kształtu sześciokąta. Zarówno wejście, jak i wyjście mogą opcjonalnie zawierać jedną końcową linię nowego wiersza (ten wybór nie musi być taki sam dla wejścia i wyjścia).
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji i wypisując wynik przez STDOUT (lub najbliższą alternatywę), wartość zwracaną funkcji lub parametr funkcji (wyjściowej).
To jest kod golfowy, więc wygrywa najkrótsza odpowiedź (w bajtach).
Przykładowe tilings
Oto garść nachyleń wejściowych, których możesz użyć do przetestowania swojego zgłoszenia.
__
/_/\
\_\/
____
/_/\_\
/\_\/_/\
\/_/\_\/
\_\/_/
______
/_/_/\_\
/_/\_\/\_\
/\_\/_/\/_/\
\/_/\_\/_/\/
\_\/_/\_\/
\_\_\/_/
________
/_/\_\_\_\
/\_\/\_\_\_\
/\/_/\/_/_/\_\
/\/\_\/_/_/\/\_\
\/\/_/\_\_\/\/_/
\/\_\/_/\_\/_/
\/\_\_\/_/_/
\/_/_/_/_/
Poniższy fragment kodu zawiera odpowiednie dane wyjściowe dla danych wejściowych N = 1
przez N = 6
.
N-1
wiodące puste linie. :(