Trump potrzebuje zbudowanej ściany, a ty to zrobisz! Aby najskuteczniej zbudować jego ścianę, stworzyłem prosty, powtarzalny wzór do użycia:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Trump powie ci, ile segmentów ściany potrzebuje, a ty zbudujesz je tak, by wyglądały właśnie tak.
Oto wzór:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
Dane wejściowe zawsze będą liczbą całkowitą> 0.
Przypadki testowe:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Ponieważ musisz to zrobić szybko, napisz jak najkrótszy program!
Jeśli to pomoże, najpierw napisałem wyzwanie, ostatni tytuł;)
JavaScript (ES6),
116115 bajtówZapisano bajt dzięki @Neil !
Wyjaśnienie
Prawie taka sama jak metoda CJam @Mauris , ale bez mapowania znaków.
Części ścienne mają format:
ponieważ jeśli powtórzysz każdą linię 15 razy, otrzymasz:
a po pocięciu na ostatnie 15 znaków otrzymasz:
Nie golfił
Test
Pokaż fragment kodu
źródło
.slice(-15)
zamiast tego?__ __ n| |_| | n| |___n - n- n -n—
Jolf , 135 bajtów
Można grać w golfa.Wyłącz ładny wydruk i wyczyść wydruk, aby uzyskać lepszy wynik. Wypróbuj tutaj! . Użyj tego również do łatwiejszego testowania dowolnej liczby.Wyjaśnię później.
źródło
Haskell,
116118108 bajtówPrzykład użycia:
Wykorzystuje tę samą strategię, co inne odpowiedzi tutaj: każda linia ściany jest jednym cyklem wzoru, np. „-” (myślnik + spacja) dla drugiej ostatniej linii. Powtórz każdy wzór, weź 15 znaków, aby uzyskać jeden segment ściany, powtórz ponownie i weź
15*n
znaki dlan
segmentów.Edycja: @ Mauris znalazł 10 bajtów. Dzięki!
źródło
Narzędzia Bash + Linux (
247186180 bajtów)Ponieważ znaki niedrukowalne zostały szeroko wykorzystane w konstrukcji powyższego skryptu, oto zrzut heksowy:
źródło
PowerShell,
103100 znaków (105 bajtów na dysku, 102 bez BOM)Prawie taka sama jak metoda @ user81655 .
Wersja bez golfa
Przykład użycia
źródło
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4, (
182175 znaków)Wersja bez golfa
[7 znaków zapisanych zgodnie z sugestią Blackhole. ]
Kolejna wersja z mniejszą liczbą bajtów, ale większą liczbą znaków
PHP 5.4, (176 znaków, 178 bajtów)
Wystarczy zastąpić 15 wystąpień m-dash jednym myślnikiem z funkcją str_repeat
źródło
$s
, użyj jej bezpośrednio w swojej pętli:foreach([…,…] as $d)
2) Usuń wcześniej spację, chyba że$d
:foreach(… as$d)
3) Użyj nowej linii zamiast"\n"
.C, 148 bajtów
Wynik wyklucza niepotrzebną nową linię, przed
f(n)
którą uwzględniono ją dla zachowania przejrzystości.magiczne liczby w
p
kodują znaki ściany w podstawie 4, które są zrekonstruowane odpowiednio z ciągu" -|_"
0,1,2,316843009
w hex jest0x1010101
. służy to do linii z-
nimi.Ponieważ
_
kodowany jest przez3
, dolną linię można zakodować po prostu jako-1
, czyli liczbę z ustawionymi wszystkimi bitami1
.źródło
#define q
i po prostu zapisując wartości na stałe.Vitsy , 121 bajtów
To, jak to robię, polega na uzyskiwaniu dostępu do każdej linii po jednym czasie wprowadzania danych, co daje mi stosy z zawartością każdej linii. Następnie wyprowadzam linię na raz. Jeśli ktoś chce, żebym udzielił bardziej szczegółowych wyjaśnień, po prostu zapytaj (obecnie otwieram prezenty, więc ...).
Wypróbuj online!
źródło
PHP 5.5,
182172 bajty168 bajtówna podstawie odpowiedzi @ kuldeep.kamboj, która w chwili pisania tego tekstu wynosi 212 bajtów, ale 182 znaki. Chciałbym, żeby ściana była nieco wyższa, więc mogłabym jeszcze trochę zoptymalizować ;-)
ten ma 168 bajtów, dzięki @ JörgHülsermann
Ten ma 172 bajty
Ten ma 182 bajty :-)
wersja bez golfa
źródło
$x=$r(' ',3);
można skrócić do$x=' ';
as$z
Python 3,
132122120 bajtówNie golfowany:
źródło
)for s in[
...Python 2, (161 znaków, 191 bajtów)
źródło
SOGL V0.12 , 32 bajty
Wypróbuj tutaj!
Wyjaśnienie:
źródło
Vim, 90 klawiszy
Zakładając, że dane wejściowe są same w buforze, następujące zadanie wykona zadanie (nowa linia tylko dla czytelności)
gdzie
^M
jest return,^[
jest escape,^K
jest ctrl+ki^V
jest ctrl+v.Prawdopodobnie można to nieco pograć w golfa, ponieważ mogą istnieć znacznie lepsze sposoby generowania wzoru.
źródło
Java 11,
236235231229 bajtówWypróbuj online.
UWAGA: Java 11 nie jest jeszcze w TIO, więc
String.repeat(int)
została emulowana za pomocąrepeat(String,int)
(dla tej samej liczby bajtów).Wyjaśnienie:
źródło
Plik PowerShell + 92 bajty
zapisz PowerShell do
get-trumpwall.ps1
(40 bajtów)zapisz plik danych z nazwą
f
i danymi zawiera symbol Unicode i tylko Linux LF (52 bajty):zrzut heksowy:
Przykład użycia
źródło