Jak niektórzy z was wiedzą, aby nauczyć się języka o cudownej wyprawie Dennisa Try It Online! Witaj, świecie! program jest wymagany. Ostatnio Dennis usprawnił sposób ładowania tych programów ze strony internetowej. Oto tablica JSON znaków używanych w tych programach, według częstotliwości, według stanu na 27 lipca 2017 r.
Niektóre z tych postaci potrzebują trochę miłości, więc Twoim wyzwaniem jest wyjście Witaj, Świecie! (najlepiej w języku zaangażowanym w ten proces), używając tylko znaków określonych poniżej. Te postacie to wszystkie postacie używane między 10
i 99
(włącznie) razy, wraz z dwiema najczęstszymi postaciami 0
i , ponieważ czuję się dobrze.
0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_
Używanie znaku powinno opierać się na jego wyglądzie w normalnym programie, a nie na podstawie jego kodu lub wartości bajtowej.
Musisz użyć co najmniej jednego znaku z tego zestawu, więc programy o długości 0 są nieprawidłowe.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
źródło
Odpowiedzi:
SOGL V0.12 ,
897568 bajtówWypróbuj tutaj!
Uwaga: ilekroć
q
tutaj jest mowa o wyjściu lub wyjściu, nie pojawia się on, ponieważ wyskakujące wyjście (którekolwiekoOpP
) jest niedostępne lub nie wypisuje poprzedzającego nowego wiersza.Objaśnienie (nieaktualne, zmieniło się to, że „H” jest drukowane przy użyciu liter alfabetu):
Ciekawostka: wszystkie znaki z dozwolonych znaków znajdują się na stronie kodowej SOGL: D
źródło
palenChars.txt
) są tutajPerl 5 , 76 bajtów
Korzysta z funkcji, która została uznana za przestarzałą, ale działa lokalnie w moim terminalu (jak wspomniano w wersji 5.18.2). W starszych wersjach Perla
?\w?
jest synonimem, dla/\w/
którego daje mi dostęp do dopasowania wyrażenia regularnego i mam wystarczającą liczbę znaków dla$&
(ostatniego dopasowania) i$`
(tekstu poprzedzającego ostatnie dopasowanie). Potrzebuję ich, aby móc zdobyćO
. Generuję to tworzącglob
referencję ($_=\*G
która, jak w przypadku skalara, przypomina coś takiegoGLOB(0x7ffb728028d0)
). Raz, że jest w$_
,?B?
będzie dopasowaćB
i$`
będzie zawieraćGLO
, mogę potem dopasować przeciwko\w$
która przechowywaćO
w$&
który jest wstawiany do ciągów, które uruchamiam ciągiem-ORAZ w celu utworzenia reszty tekstu, treść ciągu jest pisana małymi literami\L
.Wypróbuj online! - używa
/\w/
zamiast,?\w?
ponieważ wersja Perla na TIO jest zbyt nowa.Perl 5 , 65 bajtów
Jest to nieco bardziej podstępne, ponieważ zależy od nazwy pliku w TIO (która jest
.code.tio
), więc nie sądzę, że to konkuruje, ale byłem zadowolony z wyniku!Wypróbuj online!
źródło
-p
jest w porządku. Dobra robota, właśnie na to liczyłem, gdy o to zapytałem :)Unary , 7 * 10 182 bajtów
Unary to Brainfuck konwertowane na binarne konwertowane na unary za pomocą
0
licznika. Zasadniczo kondensuje program Brainfuck w liczbę, a wynikiem jest liczba0
s. Zazwyczaj są to bardzo duże programy.Nie wkleję tutaj programu, ponieważ nie wiem, na ile pozwala SE tekst, ale założę się, że to mniej niż to. Zamiast tego wkleję dokładną liczbę zer w tej odpowiedzi:
Ponieważ jest to dość tania odpowiedź, z pewnością nie jest najkrótsza, a ja po prostu skopiowałem ją, dlatego piszę na wiki.
źródło
05AB1E ,
13710695 bajtówWypróbuj online!
-31 dzięki @Adnan za wskazanie, że mogę użyć bazy 108.
- ?? dzięki @Riley za wskazanie niektórych rzeczy źle.
Stara wersja (inna metoda):
05AB1E ,
211186166 bajtówWypróbuj online!
Ha ha! I TUTAJ MYŚLĘ, ŻE ESOLANGS NIE STAŁA ŻADNEJ SZANSY!
Najpierw otrzymujemy 255 zapisanych w X:
Następnie, używając tej samej długości sztuczki, naciskamy:
1296995323340359595058728869715
Gdzie
0<space>
zamiast zer używamy sztuczki długości.Następnie w końcu wypychamy 255, które zachowaliśmy i konwertujemy z 255 na bazę 10 :
Wciąż gra w golfa przy użyciu innych dozwolonych znaków i powielanie, to będzie minuta.
źródło
Beatnik , 148 bajtów
Wypróbuj online!
Wyjaśnienie
Beatnik opiera wykonaną instrukcję na podstawie wyniku scrabble słowa. Oto skrócone wyjaśnienie:
źródło
Moorhens (v2.0),
3423983923866749716 bajtówMyślę, że można to trochę pograć w golfa, Moorhens nie jest łatwym językiem do pracy.
Wyjaśnienie
Moorhens to język oparty na słowach słownikowych. Każde słowo odpowiada operacji opartej na jego wartości skrótu. Pięć operacje są tutaj używane
xU
,ER
,XI
,KA
, iAA
xU
zwiększa TOSER
stawia nowe zero na stosie.XI
zmniejsza TOSKA
powiela warunki świadczenia usługiAA
zrzuca TOS na dółNaciskamy każdą literę z sukcesywnymi zastosowaniami tych operacji.
źródło
Glifo , 480 bajtów
Wypróbuj online!
źródło
Zagłówki , 78 bajtów
źródło
Podwójny JavaScript, 318 bajtów
Nie jestem pewien, czy jest to dozwolone, nie mogłem tego zrobić za pomocą interpretera JavaScript. Jest podobny w użyciu,
eval()
ale zamiast tego używam interpretera dwa razy: (Wypróbuj go w konsoli, aby wydrukować wynik)Wypróbuj online!
Ocenia:
Wypróbuj online!
Który ocenia na
Hello, World!
źródło
Smallf ** k , 266 bajtów:
W rzeczywistości postacie są trochę nieistotne. To tylko kwestia, czy każdy znak ma parzysty lub nieparzysty kod. Dlatego też postarałem się użyć każdej dostępnej postaci (z wyjątkiem postaci wielobajtowej) (chociaż ponieważ była losowa, nie starałem się tego zagwarantować).
źródło
ord
i 0 dla parzystychord
), więc można powiedzieć, że to 33,25 bajtów xD'5'
zajmuje normalny punkt kodowy'A'
, nie możesz go używać'5'
.Pyke ,
133144 bajtówWypróbuj online!
Okropny bałagan kodu, który prawie na pewno można skrócić ... Konstruuje go po jednym znaku na raz.
źródło
dc ,
164162 bajtyWypróbuj online!
Prawdopodobnie istnieje lepsze / bardziej interesujące podejście. Próbowałem użyć sztuczki ASCII + 256, która
dc
ma, ale generuje również dodatkowe znaki (nawet jeśli nie są drukowane), a kiedy dotarłem do „o”, cudownie pierwszej 111, miałem problemy nawet z uzyskaniem wartość 111+ (wielokrotność 256), która została odpowiednio uwzględniona. Oto więc dość proste (choć grało w golfa, gdzie to możliwe) rozwiązanie:In
dc
,z
to polecenie, które wypycha głębokość stosu na stos. Oznacza to, że możemy użyć go jako przyrostu. W ten sposób tworzę większość moich wartości ASCII dla tego wyzwania (drukowane przy pomocyP
), które wciskam na nazwane stosyS
i wskakuję z powrotem na główny stosL
.dc
pozwala używać wartości szesnastkowych AF, nawet gdy podstawa wejściowa jest dziesiętna (domyślnie).Na szczęście nasza pierwsza litera, 72, jest wielokrotnością 12, więc zapisuję tutaj bajt lub dwa, mnożąc 6 * 12 i drukując natychmiast (Moja 164-bajtowa wersja wykorzystywała mnożenie wcześnie, aby uzyskać 72 („H”), co było nieco sprytne, ale było zapisem poprzedniej próby i marnotrawstwem bajtów. Teraz zaczynam od zwiększenia i zaoszczędzenia miejsca, wykrzyknika i przecinka, które są nieczynne i dlatego nie można ich jeszcze wydrukować. Następnie przechodzę do litery „H”, którą drukuję od razu, zanim przejdę do „W”, którą muszę zachować na później.zzzzzzzC*P
).Po prostu drukuję, kiedy uderzę w „e”, a następnie zwiększam do „l”. Drukuję dwa z nich i oszczędzam jeden. Kiedy przechodzę do „o”, najpierw pomyślałem, że będę musiał zapisać jeden z nich na później, ale wszystko jest w pewnym sensie w porządku w tym momencie. Piszę „o”, odzyskuję przecinek, spację i „W” wcześniej, a teraz wracam do „o”. Drukuję to i zwiększam kilka do najwyższej niezbędnej wartości, „r” (114), którą drukuję przed załadowaniem i wydrukowaniem „l”, które wcześniej schowałem.
Prawie skończone! „d” jest wartością ASCII 100, którą można łatwo zrobić, mnożąc 10 * 10 (mniej bajtów niż wcześniej ją zapisano i załadowano). Wartość szesnastkowa
A
wynosi 10, podobnie jak nasza podstawa wejściowa, którą możemy pobrać za pomocą poleceniaI
. Pomnóż je, wydrukuj, a następnie załaduj i wydrukuj nasz wykrzyknik wcześniej. Witaj świecie!źródło