Ihr Ziel ist es, das kürzeste Programm zu schreiben, das "Hello-World!" als ASCII art.
Regeln:
- Es muss von Menschen lesbar sein, es ist mir egal, wie groß es ist (Spalten / Zeilen)
- Die Ausgabe darf nur Leerzeichen (""), Punkte ("#") und Zeilenumbrüche enthalten
- Die Ausgabe muss mit einer monospaced Schriftart funktionieren (die Buchstaben müssen jedoch keine monospaced Schriftart verwenden)
- Im Ergebnis muss jedes Zeichen durch mindestens ein Leerzeichen voneinander getrennt sein
Bitte fügen Sie einen Titel mit der Sprache und der Anzahl der Bytes in Ihrem Code hinzu.
code-golf
ascii-art
hello-world
sebcap26
quelle
quelle
bash
: 33 zeichen - pastebin.com/HZ1w8z8g Ist das akzeptabel?Antworten:
Ich habe es absolut genossen
Perl,
126 116 114 102 9887 (69) Zeichen (nur ASCII und keine externen Schriftarten)Ab sofort kürzeste ASCII-Lösung, die keine externen Schriften verwendet.
Nun, ich wollte eine elegante Lösung vorstellen, aber @Ilmari Karonen forderte mich heraus
unpack
... hätte das nicht tun sollen :-)Nun, dieser
92 8869 Zeichen Code erzeugt die hässliche unlesbare Ausgabe, die mit der von @Ilmari Karonen identisch ist:Elegantere Variante ohne Auspacken (88 Zeichen):
Aber ich denke so |. | E || .- |||., D! ding ist nichts was hallo-welt ähnelt! und sollte nicht erlaubt sein, also echte Lösung geht hier - Auspackvariante, 87 Zeichen :
Ausgabe:
Elegantere Variante mit 98 Zeichen:
Ausgabe:
Ältere Lösung (114 Zeichen), andere Art der Codierung:
Ausgabe:
quelle
e
, aber ich weiß, Sie haben Großbuchstaben gemacht, um es als fünf Pixel hohe Schrift lesbar zu machen ...JavaScript, 178 Byte
Das funktioniert in Firefox 27 Scratchpad.
quelle
Mathematica
101 9998Dies rastert den Ausdruck, erhält die binären Bilddaten, konvertiert jede 1 in "#", jede 0 in "" (Leerzeichen) und zeigt die Ausgabe in einem 12 mal 130 Zeichen großen Raster an.
Ein Charakter, der dank Jonathan Van Matre gespart wurde.
quelle
Delphi 85 Bytes
Ich weiß, es ist nicht die schönste Lösung, aber es gab keine Regel, die besagte, dass Sie keine externen Ressourcen verwenden könnten.
Ergebnis:
quelle
TStrings
stattdessen s als deklarieren . (Aber behalten Sie die Instanziierung beiTStringList
.)do X
. Der Inhalt der "externen Ressource"X
ist nicht spezifiziert (es funktioniert für mich, ist das nicht genug?), Aber ich habe unten ein paar mögliche Vorschläge gemacht ...Perl 5, 54 Byte / 71 druckbare ASCII-Zeichen
Hier ist die druckbare ASCII-Version mit 71 Zeichen:
Die 54-Byte-Version enthält nicht druckbare Zeichen, daher stelle ich sie als Hex-Dump zur Verfügung. Auf Unixish-Systemen können Sie
xxd -r
den Hex-Dump wieder in ein ausführbares Perl-Skript umwandeln :Beide müssen mit ausgeführt werden
perl -M5.010
, um die Perl 5.10+say
-Funktion zu aktivieren . Sie werden die folgende Ausgabe erzeugen:(Als Screenshot gezeigt, weil die große Zeilenhöhe in SE ASCII-Grafiken hässlich und schwer lesbar macht. Das Kleinbuchstaben "e" ist etwas umständlich, aber ich glaube, dass dies als lesbar gilt, wenn auch kaum.)
Ps. Wenn sich die Ausgabe der obigen Lösung für Sie zu minimalistisch anfühlt, finden Sie hier eine Variante mit 92 Zeichen , die eine Ausgabe ähnlich der von Tomas erzeugt :
Hier ist ein Screenshot:
Pps. Ich bin mir ziemlich sicher, dass dies ( GolfScript, 51 Zeichen ) die kürzeste druckbare ASCII-Lösung ist, wenn Sie nicht diejenigen zählen, die nur banner / FIGLet oder auf andere Weise cheaten:
Die Ausgabe ist die gleiche wie für meine 71-Zeichen-Perl-Lösung oben.
quelle
unpack
:-) Habe eine Lösung mit 69 Zeichen gefunden (87 mit der netten Ausgabe von mir).Muschel + Figlet (35)
quelle
-f banner
Es war die erste Schriftart, die ich gefunden habe und die # anstelle von * oder | verwendete und _.Python
260 215 186152Python
196 183 130114 (aber hässlicher)Ich habe gezippte Daten in Base64-Codierung verwendet. und der Code decodiert es aus der Base64-Codierung und entpackt es dann.
quelle
PHP - 183 Bytes
Verwenden von sebcap26s ASCII-Kunst als Quelle ...
quelle
Brainfuck, 372 Byte
(Ich weiß, aber der Vollständigkeit halber muss es einen Brainfuck geben. ^^ Es wird nicht viel kürzer, da es nur kleine Wiederholungen gibt. Erste und zweite Line-Schleife schon ...)
Dolmetscher hier: http://koti.mbnet.fi/villes/php/bf.php
Wenn Sie den Zahlengenerator und das Bild von @ ASKASK mit meinen Loops und einigen zusätzlichen Optimierungen kombinieren, erhalten Sie:
Brainfuck,
343 339 336334 BytesSieht allerdings hässlicher aus als meine Originalversion.
(Bild siehe @ ASKASK's Antwort)
quelle
EcmaScript 6,
172161Ausgabe:
Erläuterung:
quelle
return
Anweisungen der ersten Fettpfeilfunktion sind nicht erforderlich.charCodeAt(0)
kann reduziert aufcharCodeAt()
.Sclipting , 38 Zeichen (76 Bytes)
Ausgabe:
quelle
Brainfuck, 362 Bytes
Sorry @ johannes-h, ich habe deine gesehen und war inspiriert, meine eigenen zu machen. Es verwendet eine Kombination aus einer schnelleren Nummerngenerierung am Anfang und einem einfacheren Bild, um das Ergebnis in weniger Bytes zu generieren. Es werden jedoch nirgendwo anders Schleifen verwendet, sodass eine Optimierung erforderlich ist.
was erzeugt:
quelle
ImageMagick + sed, 71 Bytes
Ich sehe keine anderen ImageMagick-Einträge, also ist hier mein letzter Einsatz im Boden:
Ich denke die
sed
Portion kann wahrscheinlich noch etwas mehr golfen werden.Probieren Sie es online aus .
Ausgabe:
quelle
Nachschrift,
154133dh
ASCII-Quelle, Inspiration für ASCII-Kunst war die Antwort von Johannes H. :-)
(besser lesbar im Terminal)
Perl, 102
Gleiche Ausgabe wie oben. Ich weiß, dass ich gegen die beiden obigen Perl-Antworten verloren habe, aber ich veröffentliche es trotzdem. Zumindest habe ich versucht, mich in die richtige Richtung zu bewegen (und hatte nicht die kürzeste Antwort gesehen) :-).
quelle
Pure Bash, keine externen Dienstprogramme - 133 Zeichen:
Verwendet Rechts- und Linksverschiebung (dividieren und multiplizieren mit 2) und xoder, um die ein Bits zu finden.
Von Blender / Ilmari Karonen gestohlene Schriftdaten.
Getestet in Bash 3.2 und 4.2
Das sind übrigens nur 166 Zeichen:
quelle
Python 3, 114
Ausgabe (4- stellig groß, e und W von @Ilmari Karonen gestohlen ):
Und eine kürzere (107):
Ausgabe:
quelle
Python 154 Zeichen, (Char 5X7 in der Größe)
Ausgabe
quelle
Bash:
(
10389 Bytes)Code:
Ausgabe:
Kleiner, aber weniger lesbar (Basierend auf http://mckgyver.pbworks.com/f/1240440791/3PixelFont.jpg ):
Code:
Ausgabe:
quelle
Javascript / ES6 (108 Byte)
In Konsole kopieren:
Ausgabe:
(Benötigt ECMAScript6 kompatiblen Browser zB Firefox 22+)
Inspiriert von @maximeeuziere, @ p01, @aemkei
quelle
.join('\n')
kann auf die Stelle reduziert werden,.join(` `)
an der das Leerzeichen ein tatsächliches Zeichen für eine neue Zeile ist.Autoren: xem, aemkei, p01, jonas
Führen Sie dies in der JS-Konsole aus.
JavaScript, browserübergreifend,
133132126117 BytesJavaScript, ES6, funktioniert mit Firefox, 108 Bytes
Ergebnis:
quelle
HTML, 209 Zeichen
Zählt das? :)
quelle
Shell, 20 Zeichen:
Dazu benötigen Sie natürlich das
banner
Programm. Unter Debian können Sie es erhalten, indem Sie dasbsdmainutils
Paket installieren .Dadurch wird eine wunderschön gerenderte Version Ihrer Nachricht gedruckt, die auf einem der alten Endlosdrucker gedruckt werden soll. Die Ausgabe des obigen Texts ist also 322 Zeilen lang und 123 Spalten breit, und Sie drehen den Ausdruck zum Lesen auf die Seite die Nachricht. Sie könnten das resultierende Papier als Banner an die Wand hängen, daher der Name.
http://en.wikipedia.org/wiki/Banner_%28Unix%29
BEARBEITEN: Es sieht so aus, als hätte Debian auch das
sysvbanner
Paket, das ein Bannerprogramm installiert, das den Text horizontal druckt, um ihn auf einem Terminal anzuzeigen. Dies gibt jedoch nur die ersten 10 Zeichen der Nachricht aus, was für dieses Code-Golf-Problem ärgerlich ist!quelle
banner hello-world
.banner
für praktisch jeden UNIX verfügbar ist. Ich habe das Debian-Paket nur als praktischen Beweis dafür verwendet, dass ich mir nicht nur etwas ausgedacht habe, für Leute, die nichts davon wussten. Heutzutage würde ich nicht mehr erwarten, dassbanner
ein UNIX-Computer standardmäßig installiert ist, als ich einen Endlosdrucker in einem Computerlabor vorfinden würde. Aber jeder Code, der sich mit der Erstellung von Bannertexten befasst, sollte dasbanner
Programm irgendwo enthalten. Es ist Teil unserer reichen Kulturgeschichte als Computerfreaks. :-)Bash,
175-170BytesSie müssen einige Zeichen verschwenden , um eine schöne Ausgabe zu erzielen !
Ausgabe:
quelle
F # - 204 Zeichen
Ausgabe:
quelle
Python + Pyfiglet - 87 Zeichen
Ausgabe
pyfiglet
Führen Sie zum Installieren Folgendes aus:quelle
Python mit Pyfiglet: 66 mit argv, 69 ohne
66
69
firs muss heißen wie zum Beispiel:
python asciiart.py "Hallo-Welt!"
zweite:
python asciiart.py.
Ausgabe:
(Nun, es sieht irgendwie beschissen mit dieser Schriftart aus. Trotzdem :))
[edit] hat den veralteten Gedankenstrich aus dem Argument entfernt.
quelle
Javascript 137 (134)
Verwendet die Bits von Ganzzahlen, um scharfe und weiße Räume darzustellen. Getestet mit Firefox 27.
137 Zeichen
134 Zeichen (um 180 ° gedreht)
quelle
Python3 (126)
Zwischen den Zeichen befindet sich ein zusätzlicher Abstand, um die Lesbarkeit zu verbessern. Technisch handelt es sich also um eine 125-Zeichen-Lösung.
Ausgabe:
quelle
Bash
37, 33Welches ist das gleiche wie:
Von
man toilet
Mit werden
tr "'\"m" "#"
alle"
Zeichen durch ersetzt#
.quelle
tr
Die Parameter von wären kürzer als angegeben. Ich meinetr \'\"m \#
statttr "'\"m" "#"
.toilet
Ausgabe enthielt kein einfaches Anführungszeichen. Warum haben Sie es intr
den 1. Parameter aufgenommen? Einfachtr \"m \#
ist genug.Smalltalk, 151
obwohl dieses golfspiel schon vorbei ist, als referenz:
Ausgabe:
quelle