Votre objectif est d’écrire le programme le plus court contenant "Hello-World!" comme ASCII art.
Règles :
- Il doit être lisible par l'homme, peu importe sa taille (colonnes / lignes)
- La sortie doit contenir uniquement des espaces (""), des objets tranchants ("#") et des nouvelles lignes.
- La sortie doit fonctionner avec une police monospace (mais les lettres n'utilisent pas nécessairement une police monospace)
- Au final, chaque caractère doit être séparé par au moins un espace.
Veuillez ajouter un titre avec la langue et le nombre d'octets dans votre code.
code-golf
ascii-art
hello-world
sebcap26
la source
la source
bash
: 33 caractères - pastebin.com/HZ1w8z8g Est-ce acceptable?Réponses:
J'ai vraiment apprécié celui-ci
Perl,
126 116 114 102 9887 (69) caractères (ascii uniquement et pas de polices externes)À ce jour, la solution ASCII la plus courte qui n’utilise aucune police externe.
Eh bien, je voulais présenter une solution élégante mais @Ilmari Karonen m'a mis au défi avec
unpack
... n'aurais pas dû le faire :-)Eh bien, ce code de
92 8869 caractères génère une sortie illisible en anglais identique à celle de @Ilmari Karonen:Variante plus élégante sans décompresser (88 caractères):
Mais je pense que tel |. | E || .- |||., D! rien ne ressemble à Hello-World! et ne devrait pas être autorisé, donc la solution réelle va ici - variante de décompression, 87 caractères :
Sortie:
Variante plus élégante à 98 caractères:
Sortie:
Ancienne solution (114 caractères), type de codage différent:
Sortie:
la source
e
, mais je sais que vous avez fait des majuscules pour le rendre lisible avec une police de cinq pixels de haut ...JavaScript, 178 octets
Cela fonctionne dans Firefox 27 Scratchpad.
la source
Mathematica
101 9998Cela pixellise l'expression, obtient les données d'image binaire, convertit chaque 1 en "#", chaque 0 en "" (espace vide) et affiche la sortie dans une grille de 12 sur 130 caractères.
Un personnage économisé grâce à Jonathan Van Matre.
la source
Delphi 85 octets
Je sais que ce n’est pas la solution la plus jolie, mais il n’y avait pas de règle qui interdisait l’utilisation de ressources externes.
Résultat:
la source
TStrings
place. (Mais gardez l'instanciation avecTStringList
.)do X
. Le contenu de la "ressource externe"X
n'est pas spécifié (cela fonctionne pour moi, n'est-ce pas suffisant?), Mais j'ai fourni quelques suggestions possibles ci-dessous ...Perl 5, 54 octets / 71 caractères ASCII imprimables
Voici la version ASCII imprimable à 71 caractères:
La version à 54 octets contient des caractères non imprimables, je la fournis donc sous forme de vidage hexadécimal. Sur les systèmes Unixish, vous pouvez utiliser
xxd -r
pour reconvertir le vidage hexadécimal en script Perl exécutable:Les deux doivent être exécutés avec
perl -M5.010
pour activer la fonctionnalité Perl 5.10+say
. Ils produiront la sortie suivante:(Illustré en tant que capture d'écran, car l'énorme hauteur de ligne sur SE rend l'art ASCII moche et difficile à lire. La minuscule "e" est un peu gênante, mais je crois que cela est lisible, à peine si.)
Ps. Si le résultat de la solution ci-dessus vous semble trop minimaliste, voici une variante à 92 caractères produisant un résultat similaire à la solution de Tomas :
Voici une capture d'écran:
Pps. Je suis presque sûr que ceci ( GolfScript, 51 caractères ) est la solution imprimable au format ASCII la plus courte, si vous ne comptez pas ceux qui appellent simplement banner / FIGLet ou qui trichent d'une autre manière:
Le résultat est le même que pour ma solution Perl à 71 caractères ci-dessus.
la source
unpack
:-) Nous avons trouvé une solution de 69 caractères (87 avec la belle sortie de la mienne).Coquille + Figlet (35)
la source
-f banner
C'est la première police que j'ai trouvée qui utilisait # au lieu de * ou | et _.Python
260 215 186152Python
196 183 130114 (mais laide)J'ai utilisé des données compressées en encodage base64. et le code le décode à partir de l’encodage base64, puis le décompresse.
la source
PHP - 183 octets
En utilisant l'art ASCII de sebcap26 comme source ...
la source
Brainfuck, 372 octets
(Je sais. Mais pour être complet, il doit y avoir un brainfuck ^^ Cela ne va pas être beaucoup plus court, car il y a peu de répétitions. La première et la deuxième boucle sont déjà en boucle ...)
Interprète ici: http://koti.mbnet.fi/villes/php/bf.php
En combinant le générateur de nombres et l'image de @ ASKASK avec mes boucles et quelques réglages supplémentaires, nous obtenons:
Brainfuck,
343 339 336334 octetsÇa a l'air plus laid que ma version originale.
(image voir la réponse de @ ASKASK)
la source
EcmaScript 6,
172161Sortie:
Explication:
la source
return
instructions de la première grosse flèche ne sont pas nécessaires.charCodeAt(0)
peut être réduit àcharCodeAt()
.Sclipting , 38 caractères (76 octets)
Sortie:
la source
Brainfuck, 362 octets
Désolé @ johannes-h, j'ai vu le vôtre et j'ai été inspiré pour créer le mien. Il utilise une combinaison de génération de chiffres plus rapide au début et d'une image plus simple pour générer le résultat en moins d'octets. Cependant, il n'utilise pas de boucles ailleurs, il est donc temps d'optimiser.
qui génère:
la source
ImageMagick + sed, 71 octets
Je ne vois aucune autre entrée dans ImageMagick, alors voici ma mise tardive dans le sol:
Je pense que la
sed
partie peut probablement être jouée au golf un peu plus.Essayez-le en ligne .
Sortie:
la source
Postscript,
154133c'est à dire
La source de ASCII était l'inspiration pour ASCII-art, telle était la réponse de Johannes H. :-)
(plus lisible en terminal)
Perl, 102
Même résultat que ci-dessus. Je sais que j'ai perdu aux deux réponses Perl ci-dessus, mais je la publie quand même. Au moins, j'ai essayé et j'allais dans la bonne direction (et je n'avais pas vu la réponse la plus courte) :-).
la source
Pure Bash, aucun utilitaire externe - 133 caractères:
Utilise shift droit (divise et multiplie par 2) et xor pour trouver les 1 bits.
Données de police volées à Blender / Ilmari Karonen.
Testé dans Bash 3.2 et 4.2
Au fait, ce ne sont que 166 caractères:
la source
Python 3, 114
Sortie (4 caractères de hauteur e et W volés à @Ilmari Karonen ):
Et un plus court (107):
Sortie:
la source
Python 154 Characters, (Char 5X7 in size)
Output
la source
Bash:
(
10389 Bytes)Code:
Output:
Smaller, but less readable (Based on http://mckgyver.pbworks.com/f/1240440791/3PixelFont.jpg):
Code:
Output:
la source
Javascript / ES6 (108 bytes)
Copy into console:
Output:
(Needs ECMAScript6 compatible browser ie. Firefox 22+)
Inspired by @maximeeuziere, @p01, @aemkei
la source
.join('\n')
can be reduced to.join(` `)
where the space is an actual new line character.Authors: xem, aemkei, p01, jonas
Execute this in the JS console.
JavaScript, cross-browser,
133132126117 bytesJavaScript, ES6, works on Firefox, 108 bytes
Result:
la source
HTML, 209 characters
Does this count? :)
la source
Shell, 20 characters:
For this to work, of course you need the
banner
program. On Debian, you can get it by installing thebsdmainutils
package.This prints a beautifully rendered version of your message, designed to be printed on one of the old continuous-feed printers, so the output of the above text is 322 lines long by 123 columns wide, and you turn the printout on its side to read the message. You could hang the resulting paper on the wall as a banner, hence the name.
http://en.wikipedia.org/wiki/Banner_%28Unix%29
EDIT: Looks like Debian also has the
sysvbanner
package, which installs a banner program that prints the text horizontally for display on a terminal. However, this only prints the first 10 characters of the message, so it is kind of annoying for this code-golf problem!la source
banner hello-world
.banner
is available for virtually every UNIX. I just put the Debian package as a convenient proof that I wasn't just making something up, for people who didn't know about it. These days I wouldn't expect to findbanner
installed by default on a UNIX, any more than I would expect to find a continuous-feed printer in a computer lab anymore. But any code golf on making banner text really ought to have thebanner
program in it somewhere. It's part of our rich cultural history as computer geeks. :-)bash,
175170 bytesYou need to waste quite a few characters in order to produce a pretty output!
Output:
la source
F# - 204 characters
Output:
la source
Python + pyfiglet -- 87 characters
Output
To install
pyfiglet
, run:la source
Python with pyfiglet: 66 using argv, 69 without
66:
69:
firs must be called as, for example:
python asciiart.py 'Hello-World!'
second:
python asciiart.py.
Output:
(Well, it looks kinda crappy with this font. Nevertheless :) )
[edit] removed obsolete dash from the argument.
la source
Javascript 137 (134)
Uses the bits of integers to represent sharps an white spaces. Tested with Firefox 27.
137 character
134 character (rotated 180°)
la source
Python3 (126)
There's an additional space between the chars to make it better readable. So technically it's a 125 character solution.
Output:
la source
Bash
37, 33Which is the same as:
From
man toilet
With
tr "'\"m" "#"
all"
chars are replaced with#
.la source
tr
's parameters would be shorter escaped than quoted. I meantr \'\"m \#
instead oftr "'\"m" "#"
.toilet
output had no single quote. Why you included it intr
's 1st parameter? Justtr \"m \#
is enough.Smalltalk, 151
although this golf game is already over, for the reference:
output:
la source