Wydrukuj wieżowiec z możliwie najkrótszym kodem.
Wejście:
Dane wejściowe określają liczbę pięter bloku wieżowego. Jedno piętro zawiera okno po obu stronach drzwi. Okno składa się z skrótów 3x3.
Przykład 4-piętrowego wieżowca znajduje się poniżej:
=====================
)V V V V V V V V V V(
)V V V V V V V V V V V(
)V V V V V V V V V V V V(
)V V V V V V V V V V V V V(
~~~~~~~~~~~~~~~~~~~~~~~~~~~
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : _______ : : : : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : : : : I I : : : : :
Aktualizacja:
Dane wejściowe muszą być co najmniej jedno.
Końcowe spacje na końcu linii są dozwolone.
W moim przykładzie każda linia ma trzy wiodące spacje. Nie jest to obowiązkowe, jest tylko wieżowiec z wejściem.
Odpowiedzi:
V , 72 bajty
Wypróbuj online!
Oto zrzut heksowy, ponieważ zawiera znaki niedrukowalne:
Wpadłem na dziwny błąd. Sekcja pośrodku:
dGÀpG
powinna być:,ÀäGG
ale to nie działa dla danych wejściowych 1 i nie mam pojęcia, dlaczego.¯\_(ツ)_/¯
źródło
Mathematica,
301288258 bajtówCzysta funkcja, która przyjmuje dodatnią liczbę całkowitą i generuje ciąg. Łańcuch wyjściowy nie będzie wyglądał dobrze, ponieważ Mathematica najwyraźniej nie wyświetla czcionek monospace jako monospace:
Z powodów, których nie do końca rozumiem, formatuje się jako monospace, jeśli
Print
ciąg:Edycja: Zapisano kilka bajtów, nie włączając
" "
na początku każdej linii. Zmieniono definicjęs
obsługi przypadku, w którym jest tylko jedno piętro (StringRepeat
nie lubi powtarzania ciągu znaków0
).Edycja 2: Dzięki LegionMammal978 i faktowi
StringJoin
jestListable
to teraz niezrozumiały koszmar zagnieżdżonych list, a także 30 bajtów krótszych.źródło
a<>b<>...<>x
zea<>{b,...,x}
w niektórych częściach.Python 2 ,
275270262246240236 bajtówUratowałem parę z podpowiedzią z @ Flp.Tkc i zmieniając pierwszą dla pętli.
16 zapisanych z większą pomocą @ Flp.Tkc
Wypróbuj online!
Po prostu buduje każdą linię wieży jako ciąg i dodaje ją do tablicy, a następnie drukuje tablicę na końcu. Jeśli ktoś chce pełnego wyjaśnienia, niechętnie udzielę, jeśli pamiętam, jak to działa ☺
źródło
PowerShell , 193 bajty
Wypróbuj online!
(Wydaje mi się, że może tu być jeszcze kilka bajtów. Sub-190 wydaje się wykonalne.)
Pierwsze trzy linie tworzą dach, używając mnożenia i łączenia strun, wraz z pętlą,
3..0|%{...}
aby uzyskać prawidłową liczbę i nachylenieV
s.Następny wiersz biegnie od wejścia wstępnie zdekrementowanego w
--$args[0]
dół do0
postaci pętli (dekrementacja wstępna pozwala nam na indeksowanie za pomocą!$_
zamiast$_-eq1
zapisywania kilku bajtów później). W każdej iteracji pętli tworzymy wiązkę ciągów, ustawiamy zmienne$b
i$a
po drodze. Używamy również pseudonaczyek,(... , ...)[...]
aby wybrać odpowiednie łańcuchy dla środka, abyśmy mogli uzyskać prawidłowe wejście na pierwszym piętrze.Każdy ciąg jest pozostawiony osobno w potoku, a domyślnie
Write-Output
wstawia znaki nowego wiersza między, więc otrzymujemy je za darmo.źródło
T-SQL,
378372353331325 bajtówGra w golfa:
Nie golfowany:
Wypróbuj to
źródło
C,
409406402 bajtówZadzwoń z:
źródło
Partia, 373 bajtów
Tworzy grzbiet i rynnę, zauważając, że są wielokrotnościami 3, co goli kilka bajtów. Buduje dach, zauważając, że sufiks jest taki sam dla każdej linii (i ponownie obejmuje jakieś trzykrotne powtórzenie). Buduje ściany, zaczynając od najciekawszej linii ściany, którą jest okno na parterze, i usuwając szczegóły, aby wygenerować inne części ściany.
źródło
JavaScript, 335 bajtów
Tworzy funkcję
y()
z argumentemz
, któray(z)
generuje pożądany wynik.Przykładowe użycie:
Przechodzę z normalnego JavaScript do JS-code-golfa. Wszelkie wskazówki będą mile widziane.
źródło
Płótno ,
6261 bajtówWypróbuj tutaj!Wejście 0 działa zgodnie z oczekiwaniami, nawet jeśli nie jest to wymagane.
źródło