Su objetivo es escribir el programa más corto que produzca "Hello-World!" como ASCII art.
Reglas :
- Debe ser legible por humanos, no me importa su tamaño (cols / filas)
- La salida debe contener solo espacios (""), objetos punzantes ("#") y líneas nuevas
- La salida debe funcionar con una fuente monoespaciada (pero las letras no necesariamente usan una fuente monoespaciada)
- En el resultado, cada personaje debe estar separado entre sí por al menos un espacio
Agregue un título con el idioma y la cantidad de bytes en su código.
code-golf
ascii-art
hello-world
sebcap26
fuente
fuente
bash
: 33 caracteres - pastebin.com/HZ1w8z8g ¿Es esto aceptable?Respuestas:
Disfruté absolutamente este
Perl,
12611611410210887 (69) caracteres (solo ascii y sin fuentes externas)A partir de ahora la solución ascii más corta que no utiliza ninguna fuente externa
Bueno, quería presentar una solución elegante, pero @Ilmari Karonen me desafió con
unpack
... no debería haber hecho eso :-)Bueno, este código de caracteres
88 8869 genera la salida ilegible uglish idéntica a la de @Ilmari Karonen:Variante más elegante sin desempaquetar (88 caracteres):
Pero creo que tal |. | E || .- |||., D! ¡No hay nada que se parezca a Hello-World! y no debería permitirse, así que la solución real va aquí: variante de desempaquetado, 87 caracteres :
Salida:
Variante más elegante en 98 caracteres:
Salida:
Solución anterior (114 caracteres), diferentes tipos de codificación:
Salida:
fuente
e
, pero sé que lo hizo mayúsculas para que sea legible como una alta fuente de cinco pixeles ...JavaScript, 178 bytes
Eso funciona en Firefox 27 Scratchpad.
fuente
Mathematica
101 9998Esto rasteriza la expresión, obtiene los datos de la imagen binaria, convierte cada 1 en "#", cada 0 en "" (espacio vacío) y muestra la salida en una cuadrícula de 12 por 130 caracteres.
Un personaje economizó gracias a Jonathan Van Matre.
fuente
Delphi 85 bytes
Lo sé, no es la solución más bonita, pero no había una regla que dijera que no podía usar recursos externos.
Resultado:
fuente
TStrings
lugar. (Pero mantén la instanciación conTStringList
.)do X
. El contenido del "recurso externo"X
se deja sin especificar (funciona para mí, ¿no es suficiente?), Pero he proporcionado un par de posibles sugerencias a continuación ...Perl 5, 54 bytes / 71 caracteres ASCII imprimibles
Aquí está la versión ASCII imprimible de 71 caracteres:
La versión de 54 bytes contiene caracteres no imprimibles, por lo que la proporciono como un volcado hexadecimal. En los sistemas Unixish, puede usar
xxd -r
para volver a convertir el volcado hexadecimal en un script Perl ejecutable:Ambos deben ejecutarse
perl -M5.010
para habilitar la función Perl 5.10+say
. Producirán el siguiente resultado:(Se muestra como una captura de pantalla, porque la gran altura de la línea en SE hace que el arte ASCII sea feo y difícil de leer. La minúscula "e" es un poco incómoda, pero creo que esto califica como legible, aunque sea apenas).
PD. Si la salida de la solución anterior se siente demasiado minimalista para usted, aquí hay una variante de 92 caracteres que produce una salida similar a la solución de Tomas :
Aquí hay una captura de pantalla:
Pps Estoy bastante seguro de que esta ( GolfScript, 51 caracteres ) es la solución ASCII imprimible más corta, si no cuenta las que simplemente llaman banner / FIGLet o que hacen trampa de alguna otra manera:
El resultado es el mismo que para mi solución Perl de 71 caracteres anterior.
fuente
unpack
:-) Encontré una solución de 69 caracteres (87 con la buena salida mía).Concha + Figlet (35)
fuente
-f banner
Fue la primera fuente que encontré que usaba # en lugar de * o | y _.Python
260 215 186152Python
196 183 130114 (pero uglyer)Usé datos comprimidos en la codificación base64. y el código lo decodifica desde la codificación base64 y luego lo descomprime.
fuente
PHP - 183 bytes
Usando el arte ASCII de sebcap26 como fuente ...
fuente
Brainfuck, 372 Byte
(Lo sé. Pero solo para completar, tiene que haber una mierda mental ^^ No se va a acortar mucho, ya que hay pequeñas repeticiones. El bucle de primera y segunda línea ya ...)
Intérprete aquí: http://koti.mbnet.fi/villes/php/bf.php
Combinando el generador de números e imagen de @ ASKASK con mis bucles y algunos ajustes adicionales, obtenemos:
Brainfuck,
343 339 336334 BytesSin embargo, parece más feo que mi versión original.
(imagen ver la respuesta de @ ASKASK)
fuente
EcmaScript 6,
172161Salida:
Explicación:
fuente
return
declaración de la primera función de flecha gruesa no son necesarios.charCodeAt(0)
se puede reducir acharCodeAt()
.Sclipting , 38 caracteres (76 bytes)
Salida:
fuente
Brainfuck, 362 bytes
Lo siento @ johannes-h, vi el tuyo y me inspiró a hacer el mío. Utiliza una combinación de generación de números más rápida al principio y una imagen más simple para generar el resultado en menos bytes. Sin embargo, no utiliza bucles en ningún otro lugar, por lo que está listo para la optimización.
que genera:
fuente
ImageMagick + sed, 71 bytes
No veo ninguna otra entrada de ImageMagick, así que aquí está mi apuesta tardía en el suelo:
Creo que la
sed
porción probablemente se pueda jugar un poco más.Pruébalo en línea .
Salida:
fuente
Postdata,
154133es decir
Fuente exclusiva de ASCII, la inspiración para el arte ASCII fue la respuesta de Johannes H. :-)
(más legible en terminal)
Perl, 102
Mismo resultado que el anterior. Sé que perdí las dos respuestas de Perl anteriores, pero lo publico de todos modos. Al menos lo intenté y me estaba moviendo en la dirección correcta (y no había visto la respuesta más corta) :-).
fuente
Pure Bash, sin utilidades externas - 133 caracteres:
Utiliza desplazamiento a la derecha e izquierda (divide y multiplica por 2) y xor para encontrar los bits.
Datos de fuentes robados de Blender / Ilmari Karonen.
Probado en Bash 3.2 y 4.2
Por cierto, esto es solo 166 caracteres:
fuente
Pitón 3, 114
Salida (4 caracteres de altura e y W robado de @Ilmari Karonen ):
Y uno más corto (107):
Salida:
fuente
Python 154 Personajes, (Char 5X7 en tamaño)
Salida
fuente
Golpetazo:
(
10389 bytes)Código:
Salida:
Más pequeño, pero menos legible (Basado en http://mckgyver.pbworks.com/f/1240440791/3PixelFont.jpg ):
Código:
Salida:
fuente
Javascript / ES6 (108 bytes)
Copiar en la consola:
Salida:
(Necesita un navegador compatible con ECMAScript6, es decir, Firefox 22+)
Inspirado por @maximeeuziere, @ p01, @aemkei
fuente
.join('\n')
se puede reducir a.join(` `)
donde el espacio es un nuevo carácter de línea real.Autores: xem, aemkei, p01, jonas
Ejecute esto en la consola JS.
JavaScript, navegador cruzado,
133132126117 bytesJavaScript, ES6, funciona en Firefox, 108 bytes
Resultado:
fuente
HTML, 209 caracteres
¿Esto cuenta? :)
fuente
Shell, 20 caracteres:
Para que esto funcione, por supuesto que necesita el
banner
programa. En Debian, puede obtenerlo instalando elbsdmainutils
paquete.Esto imprime una versión bellamente representada de su mensaje, diseñada para imprimirse en una de las antiguas impresoras de alimentación continua, por lo que la salida del texto anterior tiene 322 líneas de largo por 123 columnas de ancho, y gira la impresión de lado para leer el mensaje. Podrías colgar el papel resultante en la pared como una pancarta, de ahí el nombre.
http://en.wikipedia.org/wiki/Banner_%28Unix%29
EDITAR: Parece que Debian también tiene el
sysvbanner
paquete, que instala un programa de banner que imprime el texto horizontalmente para mostrarlo en un terminal. Sin embargo, esto solo imprime los primeros 10 caracteres del mensaje, por lo que es un poco molesto para este problema de código de golf.fuente
banner hello-world
.banner
está disponible para prácticamente todos los UNIX. Acabo de poner el paquete Debian como una prueba conveniente de que no estaba inventando algo, para las personas que no lo sabían. En estos días, no esperaría encontrarbanner
instalado por defecto en UNIX, como tampoco esperaría encontrar una impresora de alimentación continua en un laboratorio de computadoras. Pero cualquier código de golf al hacer un texto de banner realmente debería tener elbanner
programa en algún lado. Es parte de nuestra rica historia cultural como geeks informáticos. :-)bash,
175170 bytes¡Necesitas desperdiciar bastantes caracteres para producir una salida bonita !
Salida:
fuente
F # - 204 caracteres
Salida:
fuente
Python + pyfiglet - 87 caracteres
Salida
Para instalar
pyfiglet
, ejecute:fuente
Python con pyfiglet: 66 usando argv, 69 sin
66:
69:
los abetos deben llamarse como, por ejemplo:
python asciiart.py '¡Hola, mundo!'
segundo:
python asciiart.py.
Salida:
(Bueno, se ve un poco mal con esta fuente. Sin embargo :))
[edit] eliminó el guión obsoleto del argumento.
fuente
Javascript 137 (134)
Utiliza los bits de números enteros para representar objetos punzantes y espacios en blanco. Probado con Firefox 27.
137 caracteres
134 caracteres (rotados 180 °)
fuente
Python3 (126)
Hay un espacio adicional entre los caracteres para que sea mejor legible. Entonces, técnicamente es una solución de 125 caracteres.
Salida:
fuente
Golpe
37, 33Que es lo mismo que:
Desde
man toilet
Con
tr "'\"m" "#"
todos los"
caracteres se reemplazan con#
.fuente
tr
Los parámetros se escaparían más brevemente de lo citado. Quiero decir entr \'\"m \#
lugar detr "'\"m" "#"
.toilet
salida no tenía una cita única. ¿Por qué lo incluiste entr
el primer parámetro? Solotr \"m \#
es suficiente.Smalltalk, 151
aunque este juego de golf ya terminó, para la referencia:
salida:
fuente