Wie einige von Ihnen vielleicht wissen, um eine Sprache für Dennis 'wundervollen Online-Test zu bekommen ! , ein Hallo, Welt! Programm ist erforderlich. Vor kurzem hat Dennis einen Weg gefunden, diese Programme von der Website zu laden. Hier ist ein JSON- Pastebin der in diesen Programmen verwendeten Zeichen nach Häufigkeit, Stand 27. Juli 2017.
Einige dieser Charaktere brauchen etwas Liebe, daher besteht Ihre Herausforderung darin, Hello, World! (vorzugsweise in einer Sprache, die an diesem Prozess beteiligt ist), wobei nur die unten angegebenen Zeichen verwendet werden. Diese Zeichen sind alle Zeichen, die zwischen 10
und 99
(einschließlich) verwendet werden, zusammen mit den beiden häufigsten Zeichen 0
und , weil ich mich gut fühle.
0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_
Ihre Verwendung des Zeichens sollte auf seinem Erscheinungsbild in einem normalen Programm basieren, nicht auf seinem Codepunkt oder Bytewert.
Sie müssen mindestens ein Zeichen aus diesem Satz verwenden, damit Programme der Länge 0 ungültig sind.
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
quelle
Antworten:
SOGL V0.12 ,
897568 BytesProbieren Sie es hier aus!
Hinweis: Wenn hier auf
q
oder Ausgabe Bezug genommen wird, wird diese nichtoOpP
angezeigt, da keine (n) Popping-Ausgaben verfügbar sind oder eine vorangestellte neue Zeile ausgegeben wird.Erklärung (veraltet, was sich geändert hat, ist, dass das "H" mit den Buchstaben gedruckt wird):
Unterhaltsame Tatsache: Alle Zeichen der zulässigen Zeichen sind in der SOGL-Codepage enthalten: D
quelle
palenChars.txt
) sind hierPerl 5 , 76 Bytes
Dies verwendet eine Funktion, die veraltet ist, aber lokal in meinem Terminal funktioniert (Version 5.18.2, wie angegeben). In älteren Versionen von Perl
?\w?
ist dies ein Synonym, für/\w/
das ich Zugriff auf reguläre Ausdrücke habe und über genügend Zeichen für$&
(letzte Übereinstimmung) und$`
(Text vor der letzten Übereinstimmung) verfüge . Ich brauche diese, um die zu bekommenO
. I erzeugt dies einen erschaffenglob
Referenz ($_=\*G
die, auf einen Skalar gegossen ist so etwas wieGLOB(0x7ffb728028d0)
). Sobald das in ist$_
,?B?
wird das SpielB
und$`
enthältGLO
, kann ich dann gegen entsprechen\w$
denen würde speichernO
in$&
Dies wird in die Zeichenfolgen eingefügt, die ich im Zeichenfolgen-UND-Modus ausführe, um den Rest des Texts zu erstellen. Der Textkörper der Zeichenfolge wird mit Groß- und Kleinschreibung dargestellt\L
.Probieren Sie es online! - Wird
/\w/
anstelle von verwendet,?\w?
da die Version von Perl unter TIO zu neu ist.Perl 5 , 65 Bytes
Dies ist ein bisschen betrügerischer, da es sich auf den Dateinamen von TIO (das ist
.code.tio
) stützt , also denke ich nicht wirklich, dass dies konkurriert, aber ich war mit dem Ergebnis zufrieden!Probieren Sie es online!
quelle
-p
ist das in Ordnung. Gute Arbeit, darauf habe ich gehofft, als ich darum gebeten habe :)Unär , 7 * 10 182 Bytes
Unary wird von Brainfuck in Binary konvertiert, wobei Unary
0
als Zähler verwendet wird. Im Wesentlichen verdichtet es ein Brainfuck-Programm in eine Zahl und die Ausgabe ist diese Zahl von0
s. Es sind normalerweise sehr große Programme.Ich werde das Programm hier nicht einfügen, da ich nicht weiß, wie viel Text SE zulässt, aber ich wette, es ist weniger als dies. Stattdessen füge ich die genaue Anzahl der Nullen in diese Antwort ein:
Da dies eine ziemlich billige Antwort ist, die garantiert nicht die kürzeste ist, und ich sie einfach kopiert habe, mache ich dies zu einem Wiki-Beitrag.
quelle
05AB1E ,
13710695 BytesProbieren Sie es online!
-31 Dank an @Adnan für den Hinweis, dass ich die Basis 108 verwenden könnte.
- ?? Vielen Dank an @Riley für den Hinweis auf einige Fehler.
Alte Version (andere Methode):
05AB1E ,
211186166 BytesProbieren Sie es online!
Haha! Und hier dachte ich ESOLANGS HABEN KEINE GLAUBLICHE CHANCE!
Zuerst werden 255 in X gespeichert:
Dann drücken wir mit dem gleichen Längen-Trick:
1296995323340359595058728869715
Wobei wir
0<space>
anstelle des Längentricks nur die Nullen verwenden.Dann schieben wir endlich die 255, die wir gespeichert haben, und konvertieren von 255 zu Basis 10 :
Das Golfen mit den anderen erlaubten Zeichen und die Vervielfältigung werden eine Minute dauern.
quelle
Beatnik , 148 Bytes
Probieren Sie es online!
Erläuterung
Beatnik stützt den ausgeführten Befehl auf den Scrabble-Score des Wortes. Hier ist eine verkürzte Erklärung:
quelle
Moorhens (v2.0),
3423983923866749716 BytesIch denke, man kann ein bisschen Golf spielen, Moorhens ist keine einfache Sprache, mit der man arbeiten kann.
Erläuterung
Moorhens ist eine Sprache, die aus Wörterbuchwörtern besteht. Jedes Wort entspricht einer Operation, die auf ihrem Hash basiert. Die fünf Operationen hier verwendet werden , sind
xU
,ER
,XI
,KA
, undAA
xU
erhöht die TOSER
legt eine neue Null auf den Stapel.XI
dekrementiert die AGBKA
dupliziert die AGBAA
rollt die TOS nach untenWir treiben jeden Brief mit sukzessiven Anwendungen dieser Operationen voran.
quelle
Glypho , 480 Bytes
Probieren Sie es online!
quelle
Headsecks , 78 Bytes
quelle
Double JavaScript, 318 Bytes
Ich bin mir nicht sicher, ob das erlaubt ist. Ich konnte es nicht einmal mit dem JavaScript-Interpreter machen. Es ist ähnlich zu benutzen,
eval()
aber stattdessen benutze ich den Interpreter zweimal: (Versuchen Sie es in der Konsole, um das Ergebnis wieder auszudrucken)Probieren Sie es online!
Bewertet zu:
Probieren Sie es online!
Welches bewertet zu
Hello, World!
quelle
Smallf ** k , 266 Bytes:
Eigentlich sind die Charaktere irgendwie irrelevant. Es ist nur eine Frage, ob jedes Zeichen einen geraden oder einen ungeraden Codepunkt hat. Daher habe ich mich bemüht, alle verfügbaren Zeichen (mit Ausnahme der Multibyte-Zeichen) zu verwenden (obwohl ich mich nicht bemüht habe, dies zu garantieren, da es zufällig war).
quelle
ord
und 0 für geradeord
) gespeichert werden, damit Sie sagen können, dass dies 33,25 Bytes xD'5'
den Codepoint von regular belegt'A'
, dürfen Sie diese nicht verwenden'5'
.Pyke ,
133144 BytesProbieren Sie es online!
Eine schreckliche Codeverwirrung, die mit ziemlicher Sicherheit verkürzt werden kann ... Erstellt jeweils ein Zeichen.
quelle
Gleichstrom ,
164162 BytesProbieren Sie es online!
Es gibt wahrscheinlich einen besseren / interessanteren Ansatz. Ich habe versucht, den ASCII + 256-Trick zu verwenden,
dc
der aber auch zusätzliche Zeichen ausgibt (auch wenn sie nicht gedruckt werden), und als ich das 'o' bekam, die wunderbare Primzahl 111, bekam ich sogar ein Problem Wert von 111+ (Vielfaches von 256), der sauber berücksichtigt wurde. Hier ist also eine recht einfache (wenn auch wenn möglich Golf) Lösung:In
dc
,z
ist ein Befehl, der die Stapeltiefe auf den Stapel schiebt. Das heißt, wir können es als Inkrement verwenden. Auf diese Weise erstelle ich die meisten meiner ASCII-Werte für diese Herausforderung (gedruckt mitP
), die ich auf benannte Stapel mit schiebeS
und mit auf den Hauptstapel zurückspringeL
.dc
Mit dieser Option können Sie die Hexadezimalwerte AF auch dann verwenden, wenn der Eingaberadix dezimal ist (Standardeinstellung).Zum Glück ist unser erster Buchstabe 72 ein Vielfaches von 12, daher spare ich hier ein oder zwei Bytes, indem ich 6 * 12 multipliziere und sofort drucke (Meine 164-Byte-Version verwendete die Multiplikation von Anfang an, um 72 ('H') zu erhalten, was ein wenig clever war, aber ein Überbleibsel aus einem früheren Versuch und eine Verschwendung von Bytes. Jetzt erhöhe und speichere ich zunächst den Speicherplatz, das Ausrufezeichen und das Komma, die nicht in Ordnung sind und daher noch nicht gedruckt werden können. Als nächstes komme ich zum "H", das ich sofort drucke, bevor ich zum "W" komme, das ich für später speichern muss.zzzzzzzC*P
).Ich drucke einfach, wenn ich das 'e' drücke, und erhöhe mich dann auf 'l'. Ich drucke zwei davon und speichere eine. Als ich es ‚o‘ mache, dachte ich zuerst würde ich einen von denen zu sparen habe später, aber alles ist Art an dieser Stelle um. Ich drucke ein 'o', rufe mein Komma, Leerzeichen und 'W' von früher ab und bin jetzt gleich wieder bei 'o'. Ich drucke dies aus und inkrementiere einige bis zum höchstmöglichen Wert, 'r' (114), den ich drucke, bevor ich das 'l', das ich zuvor verstaut habe, lade und drucke.
Fast fertig! 'd' ist der ASCII-Wert 100, der einfach durch Multiplizieren von 10 * 10 (weniger Bytes als zuvor gespeichert und jetzt geladen) erstellt wird. Der Hex-Wert
A
ist 10, ebenso wie unser Eingaberadix, den wir mit dem Befehl abrufen könnenI
. Multiplizieren Sie diese, drucken Sie und laden und drucken Sie dann unser früheres Ausrufezeichen. Hallo Welt!quelle