Code golf: imprimer une image du code source.
Exigences
- Doit sortir l'image du code source lui-même, pas une version stockée ailleurs et récupérée au moment de l'exécution.
- Le code doit être suffisamment lisible pour être copié à la main et reproduire les résultats.
N'importe quel format d'image est applicable.
Bonus
- -10% de votre score si vous autorisez plusieurs formats de sortie.
- -15% si votre code est également un «vrai» quine. c'est-à-dire qu'il ne lit pas son code source mais le code source est intégré (voir ici pour un exemple)
- -30% si votre code est un quine strict - c'est-à-dire que l'image du code est intégrée dans le programme (solutions Piet, je vous regarde.).
code-golf
quine
graphical-output
image-processing
Pureferret
la source
la source
Réponses:
coquille
Par "Imprimer une image du code source", je suppose que l'impression d'une image sur papier serait acceptable.
la source
Piet, 24399.76
Cela n'a pas été fait par moi.
la source
PHP - 487 × 0,9 × 0,85 = 372,555 (2000 × 99 px)
Si les avertissements sont corrects: PHP - 479 × 0,9 × 0,85 = 366,435
Vous fournissez la fonction de sortie à utiliser comme premier argument de ligne de commande:
Solution avec avertissements:
la source
Espace, 125
Génère un fichier image au format pbm .
Si vous testez ce code, veuillez le copier en cliquant sur "Modifier" et en copiant tout entre les
<pre>
balises.Sortie:
la source
Mathematica,
3731 caractèresInspiré d' une réponse dans mathematica.stackexchange.com .
la source
Export["/tmp/out.png",%]
après avoir exécuté cette commande)#n
signifie l'n
argument d'une fonction pure (créée au&
point). L'expression entière se développe enRasterize[Defer[#0[Defer,Rasterize]]]
, où#0
est l'appel récursif de la fonction pure d'origine. D'une certaine manière, ce n'est pas un quine strict, mais il n'a besoin d'aucune interface pour fonctionner, et l'OMI est une bonne solution.AppleScript,
6837D'accord, si vous pouvez appeler ImageMagick en zsh, cela est également valide. Je suis toujours en train de pirater quelque chose de plus élégant et d'esprit quine pour ma propre satisfaction, mais pour le golfe pur, nous voici:
Nouvelle version
Ancienne version
J'imagine que ce sera toujours battu, mais le vieux AppleScript verbeux fait une admirable imitation de concision pour celui-ci.
la source
Mathematica, 83
la source
math
ouMathKernel
), même avec<<JavaGraphics`
importé.Sh, X et ImageMagick 18.9:
Cela devrait fonctionner dans n'importe quel shell doté d'ImageMagick.
Pour imprimer uniquement le code pré
clear &&
- ajouté, cela revient à 26,1Exemple de sortie:
la source
HTML5 / Javascript: 615
Démo: http://jsfiddle.net/E2738/2/
On peut faire un clic droit sur l'image et l'enregistrer au format PNG
la source
<//script>
+wrapText+"<//script>";
pour+wrapText+"<\/script>";
Java, 570 - 10% - 15% = 427,5
( "filepath" inclus) 554 - 10% - 15% = 415,5 ( "filepath" non inclus)
Merci à Andreas pour enlever
BufferedImage
enjava.awt.image.BufferedImage
Sortie:
Pour afficher correctement, consultez ce lien: http://i.stack.imgur.com/RRSDw.png
Cela fonctionne exactement comme un quine normal, sauf qu'il génère une image. Le format actuel est
png
, mais le format peut facilement être changé en remplaçant toutes les instances depng
dans le programme par le format que vous voulez.Contrairement à quelques réponses ici, c'est une vraie quine; pas de lecture du fichier programme.
la source
Javascript + JQuery
153148Ordinaire
Golfé
la source
$
? utilisez-vous également jQuery ??stdio.h
xD. L'écriture du programme sans jQuery est cependant facile. Remplacez simplement$('<canvas/>')[0]
pardocument.createElement('canvas')
et$('body').append
pardocument.write
. jQuery m'a sauvé des octets.zsh, 57 × 0,9 = 51,3
Passez-lui le nom du fichier de sortie comme argument.
Produit:
la source
C99 ( en utilisant SDL & SDL_ttf),
414354346-15% = 294,1C'est assez moche sans plus de sauts de ligne, mais malheureusement, ils doivent être absents. La fonction de rendu de texte ne bloque pas du tout les caractères de contrôle, donc tout saut de ligne dans le code doit être rendu manuellement dans la sortie.
Voici le même code mais avec quelques sauts de ligne supplémentaires pour plus de lisibilité:
Malheureusement, cela n'ajoute pas non plus de sauts de ligne à la sortie graphique:
La sortie est toujours lisible, mais avec une sortie à 9 points et la couleur de police rouge, c'est un peu loufoque. Vous pouvez l'améliorer au détriment d'un personnage en remplaçant le
9
par12
. (Notez que la dimension de l'image résultante est codée en dur à 2048x80. Pour tenir compte des différences dans les différentes polices, un peu d'excès a été ajouté à la marge de droite et à l'interlignage, suffisamment pour qu'une police de taille 12 soit toujours confortable. Cependant, si vous souhaitez l'augmenter encore, les dimensions devront probablement être également modifiées.)La commande pour construire le programme est:
Le programme suppose qu'il existe un fichier de police appelé
q.ttf
dans le répertoire en cours lors de l'exécution. J'ai pris soin de cela au préalable en exécutant la commande suivante (qui devrait fonctionner sur la plupart des Linux modernes):(N'hésitez pas à importer votre propre police TrueType préférée à la place.)
Après avoir exécuté le programme, la sortie d'image sera créée dans le répertoire courant, dans un fichier nommé
q.bmp
. Malheureusement, les fichiers bitmap Windows sont le seul format de sortie fourni par ce programme. L'ajout de formats de sortie supplémentaires nécessiterait une liaison dans davantage de bibliothèques.Notez que ce programme tire parti de la syntaxe de C99 pour introduire des valeurs littérales non simples, réduisant ainsi considérablement le nombre de variables à définir. C'est quelque chose dont plus de golfeurs C devraient profiter.
la source
C # - 498 - 15% = 423,3
Cela peut probablement être joué plus. Je n'ai jamais fait de quines ou ce genre de graphiques en C # auparavant:
Sortie:
L'ajout d'un support de format différent serait facile. Je ne sais pas si ça vaut le coup, cependant.
la source
Ruby, 104 caractères
Exemple de sortie, par demande: i.imgur.com/jMC594C.png
la source
Python:
255238 -10% -15% =195,075182,07Usage:
Il s'agit d'un vrai quine qui dessine la sortie dans le fichier spécifié sur la ligne de commande. Le format de fichier est défini simplement en changeant l'extension du nom de fichier (par exemple
quine.jpg
pour un JPEG etquine.png
pour un PNG).Exemple de sortie (image 2000x20):
la source
2e3
au lieu de2000
.2e3
est unfloat
, etImage.new
exige l'int
art.