Twoim zadaniem dzisiaj jest stworzenie wiru z jednym parametrem.
Ten parametr określa długość każdego ramienia w znakach.
Każda „warstwa” każdego ramienia zawiera o jedną postać więcej niż ostatnia.
Oto, jak będzie wyglądał wir, biorąc pod uwagę długość ramienia:
0:
#
1:
#
###
#
2:
#
# #
###
# #
#
3:
## #
# #
###
# #
# ##
4:
# #
## #
# #
###
# #
# ##
# #
10:
#
#
#
#
#
#### #
### #
## #
# #
###
# #
# ##
# ###
# ####
#
#
#
#
#
Obowiązują standardowe luki, opcjonalne końcowe białe znaki, dowolny pojedynczy znak inny niż biały w ASCII może zastąpić „#”.
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach.
Odpowiedzi:
MATL , 60 bajtów
Wypróbuj online! Lub sprawdź przypadki testowe: 0 , 1 , 2 , 3 , 4 , 10 .
Okazało się to zabawniejsze niż się spodziewałem. Jednak wyjaśnienie będzie trudniejsze ...
źródło
Galaretka , 48 bajtów
Wypróbuj online!
(Zrób wszystko bardziej kwadratowe, zastępując finał
Y
zG
dodanie przestrzeń pomiędzy kolumnami).W jaki sposób?
Tworzy listę
#
współrzędnych ramienia względem środka. Przekształca to we współrzędne czterech ramion z lewego górnego rogu i dodaje współrzędną środkową. Tworzy tabelę wszystkich współrzędnych w przestrzeni i ustawia ramiona#
oraz przestrzeńi łączy rzędy z nowymi liniami.
źródło
Mathematica
139172 bajtówChodzi o stworzenie pojedynczego ramienia z funkcją -
{⌊.5+.5(-7+8#)^.5⌋,#-1}
która wydziela indeks każdego elementu ramienia, przy założeniu, że środkowy element ma indeks (0,0). Nikt jeszcze tego nie zauważył, ale podejrzewam, że ten pomysł dałby zwycięską odpowiedź w lepszym języku golfowym. Następnie obracam ramię o wielokrotność 90 stopni, ponownie indeksuję i konstruuję macierz.SparseArray
wydawał się oczywistym wyborem do skonstruowania matrycy, ale mógł pójść zBoxMatrix
iReplacePart
.Niegolfowane (kodowane na stałe dla długości ramienia = 3,
%
oznacza poprzednie wyjście):Wykorzystanie% @ 4
Jak się dowiedziałem, wyjście musi być czystym ASCII bez dodatkowych odstępów lub formatowania, kod musi się trochę wydłużyć (172 bajty):
źródło
Węgiel drzewny , 30 bajtów
Wyjaśnienie
Wypróbuj online!
źródło
Trim
wydaje się działać golfist:NθFθ⁺¶#×#ιJ⁰¦⁰Tθ⁺¹θ#⟲O↖²⁴⁶
(⁺¹
jest to obejście, ponieważT⁰¦⁰
z jakiegoś powodu nie działa. i⊕
wtedy nie istniał.)