Być może znasz Alana Walkera z jego zawsze popularnej piosenki Faded. Teraz jego „obserwatorzy” nazywają się Walkerami i mają logo, oto uproszczona wersja:
\\
\\ //\\
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // //\\ \\ //
\\// // \\ \\//
// // \\ \\
//\\ // \\ //\\
\\// \\// \\
\\
Celem tego wyzwania jest wydrukowanie tego logo.
ZASADY:
- Jeśli zwrócisz listę ciągów znaków z funkcji zgodnie ze standardami meta, podaj stopkę, która wydrukuje ją na ekranie.
- Wszystkie znaki powyższego logo muszą tam być. Bez skrótów!
- Najkrótsza liczba bajtów wygrywa!
Odpowiedzi:
Węgiel drzewny ,
31302927 bajtówWypróbuj online!Link jest do pełnej wersji kodu. Niestety
Copy
nie robi tego, co chcę w tym przypadku, więc zamiast tego muszę zapętlić. Wyjaśnienie:Narysuj wszystko dwa razy, ale za drugim razem kursor rozpocznie znak od prawej strony.
Narysuj główny W od prawej do lewej, ale pozostaw kursor w pobliżu odwróconego V.
Narysuj odwrócony V.
źródło
F²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³
.JavaScript (ES6),
172139 bajtówW jaki sposób?
Logo zasadniczo składa się z grup spacji, po których następuje znak „
//
albo”\\
i „line”.Odstępy i wzory końcowe są kodowane przy użyciu wartości base-36:
0
for//
,1
for\\
.Wszystko można zakodować w ten sposób za pomocą pojedynczej cyfry 36-bazowej, z wyjątkiem ostatniego wiersza, który składa się z 30 spacji, po których następuje
\\
30 * 2 + 1 = 61 =1p
w bazie-36. Top
powinno być interpretowane jako 12 miejsc, po czym\\
jednak ten wzór nie pojawia się nigdzie. Tak więc, możemy po prostu obsłużyć ten szczególny przypadek kosztem 2 dodatkowych bajtów w wyrażeniu regularnym:/.p?/
.Pierwsza wersja, 186 bajtów
Uwaga: Ten został przesłany przed aktualizacją logo.
Pokaż fragment kodu
źródło
pieprzenie mózgu , 579 bajtów
Wypróbuj online!
Generuje stałe
47 92 32 10
w pamięci, a następnie odpowiednio je wybiera i wysyła.źródło
SOGL V0.12 , 38 bajtów
Wypróbuj tutaj!
źródło
Bubblegum ,
7776 bajtówHexdump:
Wypróbuj online!
Próg gumy do żucia. : P
źródło
/// , 166 bajtów
Wypróbuj online!
źródło
C (gcc) , 377 bajtów
Wypróbuj online!
źródło
Python 2 , 197 bajtów
Wypróbuj online!
Wykorzystuje logikę z odpowiedzi JS.
źródło
Haskell,
161160 bajtówWypróbuj online!
Spacje przed
\\
są kodowane jako małe litery, a przedtem//
jako wielkie litery, gdzie liczba spacji to wartość ASCII minus 96 (lub 64). Zero spacji to`
/@
. Przestrzenie każdej linii są przechowywane w odwrotnej kolejności, ponieważ są one zużywane przez prawy krotnie.źródło
Węgiel drzewny , 51 bajtów
Wypróbuj online!
Węgiel , 50 bajtów
Wypróbuj online!
źródło
Węgiel ,
5031 bajtówWypróbuj online! Link jest do pełnej wersji.
Próbowałem. (Ponadto zaznaczę, że zrobiłem to całkowicie sam, nawet jeśli wygląda nieco podobnie do drugiego. [Shiz, zrobiłem to ponownie. Nawiasem mówiąc, nadal jest inaczej.: P])
źródło
Galaretka , 65 bajtów
Wypróbuj online!
Zwraca listę znaków. Łącze TIO ma stopkę do drukowania na osobnych liniach.
źródło
PHP, 186 bajtów:
Obie wersje wymagają PHP 5.5 lub nowszego.
Uruchom je
-nr
lub wypróbuj onlineKompresja przestrzeni daje najkrótszą alternatywę:
(podwójny ukośnik odwzorowany na
0
, podwójny ukośnik naf
, sapresy skompresowane do cyfr)PHP 7.1 wyświetla ostrzeżenia; zastąpić
+$c
z$c>0
do naprawienia.bitmapa bazowa 64 ( 187 bajtów ):
(odwzorowane spacje na
00
, nowa linia na01
, podwójny ukośnik odwrotny10
i podwójny ukośnik na11
, a następnie połączenie 3 „pikseli” każdy w jeden znak, poprzedzone1
i przekonwertowane z pliku binarnego na ASCII)(pierwszy podział linii dla wygody czytania; drugi jest niezbędny)
źródło
Bubblegum , 74 bajty
Wypróbuj online!
źródło
PowerShell ,
221220 bajtówWypróbuj online!
Podejście dość naiwne ( i 50 bajtów gorsze niż odpowiedź JS, kulenie się ). Czy ktoś zna sposób wykonywania wielu
-replace
s w PowerShell?-1 bajt dzięki Veskah.
źródło
Python 2 , 180 bajtów
Wypróbuj online!
Kodowanie to podstawa 36:
i inaczej,
źródło
C # (interaktywny kompilator Visual C #) , 122 bajty (121 znaków)
Wypróbuj online!
Wyjaśnienie
Każda część logo to tylko 0+ spacji z albo a
\\
lub//
na końcu, a może nowa linia. Jest ich 52 . Następnie kodujemy każdy segment w znak:Weź liczbę spacji w każdym segmencie, a następnie dodaj 2 do tej liczby.
Bit przesuń liczbę w lewo 2 razy.
Jeśli segment kończy się
//
, bit-LUB LUB liczba po jednym.Jeśli segment kończy się nową linią, bitowo LUB liczbę o dwa.
Weź numer i wrzuć go do postaci.
Powtórz dla każdego segmentu.
Oto wszystkie 52 segmenty i wartość liczbowa, w którą kodują:
źródło
j>>2
->j/4
string.Concat
tutaj, aby był ważny ...C (gcc) ,
144140139 bajtów-4 bajty dzięki ceilingcat .
Każdy znak w ciągu koduje liczbę spacji, które należy zastosować przed określonym ciągiem. Jeśli jest to mała litera (lub backtick), to ciąg to „\”, a jeśli wielkie lub @, to „//”. Spacja oznacza nowy wiersz.
Wypróbuj online!
źródło