Uwaga dla modów, jeśli tytuł nie oddaje sprawiedliwości, zmień go na cokolwiek, myślałem, że to zabawne.
Twoim zadaniem jest powieszenie lampek na ten sezon świąteczny, a twoja rodzina zdecydowała, że aby było wesołych świąt, musisz zawiesić co najmniej 2 lampki świąteczne w domu. Twoim wyzwaniem jest podanie 1 < n
odpowiedniej liczby lampek choinkowych, które powiesisz zgodnie z następującymi specyfikacjami ...
Oto struktura podstawowego światła bożonarodzeniowego:
_?_
[___]
/:' \
|:: |
\::. /
\::./
'='
Jedyną niepewną częścią jest znak zapytania, ponieważ w zależności od tego, gdzie światło wyląduje w łańcuchu, połączenie będzie się znacznie różnić.
W przypadku pierwszego światła w łańcuchu musisz wygenerować:
.--._
_(_
[___]
/:' \
|:: |
\::. /
\::./
'='
Aby uzyskać ostatnie światło w łańcuchu, musisz wygenerować:
_.--.
_)_
[___]
/:' \
|:: |
\::. /
\::./
'='
I dla wszystkich świateł w środku:
_.--.--._
_Y_
[___]
/:' \
|:: |
\::. /
\::./
'='
Przykład:
N = 2 :
.--.__.--.
_(_ _)_
[___] [___]
/:' \ /:' \
|:: | |:: |
\::. / \::. /
\::./ \::./
'=' '='
N = 6 :
.--.__.--.--.__.--.--.__.--.--.__.--.--.__.--.
_(_ _Y_ _Y_ _Y_ _Y_ _)_
[___] [___] [___] [___] [___] [___]
/:' \ /:' \ /:' \ /:' \ /:' \ /:' \
|:: | |:: | |:: | |:: | |:: | |:: |
\::. / \::. / \::. / \::. / \::. / \::. /
\::./ \::./ \::./ \::./ \::./ \::./
'=' '=' '=' '=' '=' '='
Kredyt
ASCII-Art pochodzi z: http://www.chris.com/ascii/index.php?art=holiday/christmas/other
Został opracowany przez użytkownika o nazwie „jgs”, który jest odpowiedzialny za około 40% treści w tej witrynie.
Zasady
- Końcowe spacje są w porządku, to samo z końcowym znakiem nowej linii.
- Jest jeszcze 1 miejsce pomiędzy pierwszą i ostatnią żarówką od reszty łańcucha.
- Jako dane wejściowe możesz wziąć tylko 1 liczbę całkowitą, a wynik MUSI być ciągiem, bez tablic.
- Twój program może mieć niezdefiniowane funkcje dla wartości mniejszych niż 2.
Jest to ascii-art code-golf , wygrywa najmniej bajtów.
Odpowiedzi:
SOGL V0.12 ,
73717066 bajtówWypróbuj tutaj!
-4 bajty, zapętlając ciąg znaków
(YYY)
jak w odpowiedzi na węgiel drzewny63 bajty działałyby, gdyby nie trzeba było obsługiwać 2: /
źródło
save SOGL codepage encoded file
przycisk, otrzymasz plik 70-bajtowy, który możesz tam również załadować (chociaż przycisk przeglądania jest nieinicjalnie odległy, to naprawia). SOGL używa do tego niestandardowej strony kodowej. (strona kodowa znajduje się w nagłówku odpowiedzi)Python 3,
200195191190186 bajtów-1 bajt z dylnan
-4 bajty z Rod
Pobiera dane wejściowe na standardowe wejście.
Wypróbuj online!
Wyjaśnienie:
Dodatkowa świąteczna wersja!
źródło
for s in l:print(s,s*x,s)
zapisania bajtu.Pyth ,
113107 bajtówWypróbuj online!
Niezupełnie najbardziej golfowa wersja ...
źródło
JavaScript (ES6), 180 bajtów
Test
źródło
JavaScript (ES6),
204201196194192 bajtówPokaż fragment kodu
źródło
.--._${(r=x=>x.repeat(N-2))(`_.--.--._`)}_.--.
je${(r=x=>x.repeat(N-1))(`.--.__.--`)}.
N
po pierwszym wezwaniu dor
, ale to działa dobrze.Węgiel drzewny ,
7874 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Edycja: Zapisano 2 bajty, upraszczając sposób drukowania okablowania. Zapisano 2 bajty, ponieważ nowy kod automatycznie rzutuje dane wejściowe na liczby całkowite. Wyjaśnienie:
Wydrukuj okablowanie, biorąc sznurek
.--.__
, formując go do długości 9, a następnie powtarzając go raz dla każdego połączenia, kończąc końcem.
przed przejściem do początku następnej linii żarówek.Pętla nad ciągiem łączników:
(
i)
na końcach, aY
na środku.Przesuń w prawo o jedną postać, jeśli jest to ostatnia żarówka.
Wydrukuj korpus żarówki bez poruszania kursorem.
Wydrukuj nasadkę żarówki wraz ze złączem.
Przejdź na początek następnej żarówki (dodatkowa postać, jeśli jest to pierwsza żarówka).
źródło
Excel VBA,
224207205 bajtówAnonimowa funkcja bezpośredniego okna VBE, która przenosi dane wejściowe z zakresu
[A1]
i wyjścia do bezpośredniego okna VBE.Drukuje żarówki linia po linii, od górnego lewego do dolnego prawego
Próbki we / wy
-17 Bajtów dzięki @ YowE3k
-2 bajty dla dodania zmiennej tymczasowej
b
źródło
: [Rept(B1,A1-2)]
Tuż przed rozpoczęciem pętli nie jest używany.C
279278272262259 bajtówDzięki @NieDzejkob za zapisanie sześciu bajtów!
Wypróbuj online!
Rozwinięty:
źródło
PHP,
276,307,303,301,293,283,280, 278 bajtówCzytelna wersja do testowania:
Sprawdź zminimalizowaną wersję tutaj
Sprawdź czytelną wersję tutaj
AKTUALIZACJA
Zawinął to w funkcję,
źródło
\
przed cyfrą separatora, więc zaoszczędzisz tylko 1 znak. Można zapisać kolejne 2 znaki uzależniając spacjami część tej samej większego łańcucha, zawierający wyraz w środku jak rozszerzenie:$a[]=$r($b)." {$r($b,$n)} ".$r($b);
.9
jako separatora, nie trzeba używać znaku ucieczki, prawdopodobnie działa to z innymi liczbami, po prostu nie0
$r()
lambda jako regularnąfunction r()
(może znajdować się w tym samym miejscu, funkcja w funkcji jest możliwa). Musisz naprawić parsowanie ciągu:" {r("")} "
nie będzie działać. Kolejne -7 bajtów;)Java,
310307300275 bajtówDzięki DevelopingDeveloper za przekształcenie go w wyrażenie lambda
Rozszerzony:
Patrząc na krótsze sposoby pomnożenia łańcuchów i odkryłem, że strumienie są zaskakująco bardziej szczegółowe
Wypróbuj online!
źródło
String o="";
+o+=" .";
=String o=" .";
j=#
z pętli forCzysty ,
305292288275 bajtówWypróbuj online!
źródło
Python 2 (PyPy) ,
365316315251245 bajtów-21 dzięki FlipTack
-43 dzięki ovs
-6 dzięki Mr. Xcoder
Wypróbuj online!
źródło
Kotlin , 261 bajtów
Upiększony
Test
TIO
TryItOnline
źródło
Arkusze Google, 190 bajtów
Anonimowa funkcja arkusza roboczego, która pobiera dane wejściowe z zakresu
A1
i danych wyjściowych do komórki wywołującejźródło