Golf de código: imprima una imagen del código fuente.
Requisitos
- Debe generar la imagen del código fuente en sí, no una versión almacenada en otro lugar y recuperada en tiempo de ejecución.
- El código debe ser lo suficientemente legible como para copiarlo a mano y reproducir los resultados.
Cualquier formato de imagen es aplicable.
Bonos
- -10% de su puntaje si permite más de un formato de salida.
- -15% si su código también es una quine 'verdadera'. es decir, no lee su código fuente pero el código fuente está incrustado (vea aquí un ejemplo)
- -30% si su código es una cantidad estricta, es decir, la imagen del código está incrustada en el programa (soluciones Piet, lo estoy mirando).
code-golf
quine
graphical-output
image-processing
Pureferret
fuente
fuente
Respuestas:
cáscara
Al "Imprimir una imagen del código fuente", supongo que imprimir una imagen en papel sería aceptable.
fuente
Piet, 24399.76
Esto no fue hecho por mí.
fuente
PHP - 487 × 0.9 × 0.85 = 372.555 (2000 × 99px)
Si las advertencias están bien: PHP - 479 × 0.9 × 0.85 = 366.435
Proporciona la función de salida para usar como el primer argumento de línea de comando:
Solución con advertencias:
fuente
Espacio en blanco, 125
Emite un archivo de imagen en formato pbm .
Si está probando este código, cópielo haciendo clic en "Editar" y copiando todo entre las
<pre>
etiquetas.Salida:
fuente
Mathematica,
3731 caracteresInspirado por una respuesta en Mathica.stackexchange.com .
fuente
Export["/tmp/out.png",%]
después de ejecutar este comando)#n
significa eln
argumento de una función pura (creada en el&
punto). Toda la expresión se expande aRasterize[Defer[#0[Defer,Rasterize]]]
, donde#0
es llamada recursiva de la función pura original. En cierto modo, esta no es una cuestión estricta, pero no necesita ninguna interfaz para funcionar, y es una buena solución para IMO.AppleScript,
6837Bien, si puedes llamar a ImageMagick en zsh, entonces esto también es válido. Todavía estoy pirateando algo más elegante y del espíritu quine para mi propia satisfacción, pero por puro golfismo, aquí estamos:
Nueva versión
Versión antigua
Me imagino que esto aún será superado, pero el antiguo AppleScript detallado hace una imitación admirable de concisión para este.
fuente
Mathematica, 83
fuente
math
oMathKernel
), incluso con<<JavaGraphics`
importados.Sh, X e ImageMagick 18.9:
Esto debería funcionar en cualquier shell que tenga ImageMagick.
Para imprimir solo el prefijo del código,
clear &&
esto aparece en 26.1Salida de muestra:
fuente
HTML5 / Javascript: 615
Demostración: http://jsfiddle.net/E2738/2/
Uno puede hacer clic derecho en la imagen y guardarla como PNG
fuente
<//script>
+wrapText+"<//script>";
a+wrapText+"<\/script>";
Java, 570 - 10% - 15% = 427.5
( "ruta de archivo" incluido) 554 - 10% - 15% = 415,5 ( "ruta de archivo" no incluido)
Gracias a Andreas para retirar
BufferedImage
enjava.awt.image.BufferedImage
Salida:
Para ver correctamente, vea este enlace: http://i.stack.imgur.com/RRSDw.png
Esto funciona igual que una quine normal, excepto que da salida a una imagen. El formato actual es
png
, pero el formato se puede cambiar fácilmente reemplazando todas las instancias delpng
programa con el formato que desee.A diferencia de algunas respuestas aquí, esta es una verdadera quine; sin lectura del archivo del programa.
fuente
Javascript jQuery +
153148Regular
Golfed
fuente
$
? ¿estás usando jQuery también?stdio.h
xD. Sin embargo, escribir el programa sin jQuery es fácil. Simplemente reemplace$('<canvas/>')[0]
condocument.createElement('canvas')
y$('body').append
condocument.write
. jQuery me ahorró bytes.zsh, 57 × 0.9 = 51.3
Pásalo como nombre de archivo de salida como argumento.
Produce:
fuente
C99 (usando SDL y SDL_ttf),
414354346 - 15% de = 294,1Esto es bastante feo sin más saltos de línea, pero desafortunadamente necesitan estar ausentes. La función de representación de texto no incluye caracteres de control, por lo que cualquier salto de línea en el código debe representarse manualmente en la salida.
Aquí está el mismo código, pero con algunos saltos de línea adicionales para mayor legibilidad:
Lamentablemente, esto tampoco agrega saltos de línea a la salida gráfica:
La salida sigue siendo legible, aunque con una salida de 9 puntos y el color de fuente rojo, es un poco entrecortada. Puedes mejorarlo a costa de un personaje reemplazando el
9
con12
. (Tenga en cuenta que la dimensión de la imagen resultante está codificada a 2048x80. Para acomodar las diferencias en varias fuentes, se ha agregado un poco de exceso al margen derecho y al inicio, lo suficiente como para que una fuente de tamaño 12 aún se ajuste cómodamente Sin embargo, si desea aumentarlo aún más, es probable que también sea necesario modificar las dimensiones).El comando para construir el programa es:
El programa asume que hay un archivo de fuente llamado
q.ttf
en el directorio actual cuando se ejecuta. Me ocupé de esto de antemano ejecutando el siguiente comando (que debería funcionar en la mayoría de los Linux modernos):(No dude en importar su propia fuente TrueType favorita).
Después de ejecutar el programa, la salida de la imagen se creará en el directorio actual, en un archivo llamado
q.bmp
. Lamentablemente, los archivos de mapa de bits de Windows son el único formato de salida que proporciona este programa. Agregar más formatos de salida requeriría vincular en más bibliotecas.Tenga en cuenta que este programa aprovecha la sintaxis de C99 para introducir valores literales no simples, reduciendo así significativamente el número de variables que deben definirse. Esto es algo que más golfistas C deberían aprovechar.
fuente
C # - 498 - 15% = 423.3
Esto probablemente se puede jugar más al golf. Nunca he hecho quines o este tipo de gráficos en C # antes:
Salida:
Agregar un soporte de formato diferente sería fácil. Sin embargo, no estoy seguro de si vale la pena.
fuente
Ruby, 104 caracteres
Ejemplo de salida, por solicitud: i.imgur.com/jMC594C.png
fuente
Python:
255238 -10% -15% =195.075182.07Uso:
Esta es una verdadera quine que dibuja el resultado en el archivo especificado en la línea de comandos. El formato de archivo se establece simplemente cambiando la extensión del nombre de archivo (por ejemplo,
quine.jpg
para un JPEG yquine.png
para un PNG).Ejemplo de salida (imagen 2000x20):
fuente
2e3
lugar de2000
.2e3
es unafloat
yImage.new
exigeint
s.