Code Golf: Drucken Sie ein Bild des Quellcodes.
Bedarf
- Es muss das Image des Quellcodes selbst ausgegeben werden, keine Version, die an anderer Stelle gespeichert und zur Laufzeit abgerufen wurde.
- Der Code muss so lesbar sein, dass er von Hand kopiert und die Ergebnisse reproduziert werden können.
Jedes Bildformat ist anwendbar.
Boni
- -10% Ihrer Punktzahl, wenn Sie mehr als ein Ausgabeformat zulassen.
- -15%, wenn Ihr Code auch ein "wahrer" Quine ist. dh es liest seinen Quellcode nicht, aber der Quellcode ist eingebettet (siehe hier für ein Beispiel)
- -30%, wenn Ihr Code eine strenge Quine ist - dh das Bild des Codes ist in das Programm eingebettet (Piet-Lösungen, ich sehe Sie an.).
code-golf
quine
graphical-output
image-processing
Pureferret
quelle
quelle
Antworten:
Schale
Mit "Ein Bild des Quellcodes drucken" gehe ich davon aus, dass das Drucken eines Bildes auf Papier akzeptabel wäre.
quelle
Piet, 24399,76
Dies wurde nicht von mir gemacht.
quelle
PHP - 487 × 0,9 × 0,85 = 372,555 (2000 × 99 Pixel)
Wenn die Warnungen in Ordnung sind: PHP - 479 × 0,9 × 0,85 = 366,435
Sie stellen die Ausgabefunktion bereit, die als erstes Befehlszeilenargument verwendet werden soll:
Lösung mit Warnungen:
quelle
Leerzeichen, 125
Gibt eine Bilddatei im pbm- Format aus.
Wenn Sie diesen Code testen, kopieren Sie ihn bitte, indem Sie auf "Bearbeiten" klicken und alles zwischen den
<pre>
Tags kopieren .Ausgabe:
quelle
Mathematica,
3731 ZeichenInspiriert von einer Antwort in mathematica.stackexchange.com .
quelle
Export["/tmp/out.png",%]
nach Ausführen dieses Befehls)#n
bedeutet dasn
Argument einer reinen Funktion (erstellt am&
Punkt). Der gesamte Ausdruck erweitert sich zuRasterize[Defer[#0[Defer,Rasterize]]]
, wobei der#0
rekursive Aufruf der ursprünglichen reinen Funktion erfolgt. In gewisser Weise ist dies keine strenge Quine, aber es braucht kein Frontend, um zu funktionieren, und ist IMO eine nette Lösung.AppleScript,
6837Okay, wenn Sie ImageMagick in zsh aufrufen können, ist dies auch gültig. Ich hacke immer noch nach etwas Eleganterem und Eleganterem, um mich selbst zu befriedigen, aber um Golf zu spielen, hier sind wir:
Neue Version
Alte Version
Ich stelle mir vor, dass dies immer noch übertroffen wird, aber das ausführliche alte AppleScript macht eine bewundernswerte Nachahmung der Prägnanz für dieses.
quelle
Mathematica, 83
quelle
math
oderMathKernel
), auch nicht mit<<JavaGraphics`
importierten.Sh, X & ImageMagick 18.9:
Dies sollte in jeder Shell funktionieren, die ImageMagick enthält.
Wenn Sie nur den vorangestellten Code drucken möchten, wird
clear &&
dies unter 26.1 beschriebenBeispielausgabe:
quelle
HTML5 / Javascript: 615
Demo: http://jsfiddle.net/E2738/2/
Man kann mit der rechten Maustaste auf das Bild klicken und es als PNG speichern
quelle
<//script>
+wrapText+"<//script>";
zu+wrapText+"<\/script>";
Java, 570 - 10% - 15% = 427,5
("Dateipfad" enthalten), 554 - 10% - 15% = 415,5 ("Dateipfad" nicht enthalten)
Vielen Dank an Andreas für das Entfernen
BufferedImage
injava.awt.image.BufferedImage
Ausgabe:
Weitere Informationen finden Sie unter diesem Link: Anzeige finden Sie unter folgendem http://i.stack.imgur.com/RRSDw.png
Dies funktioniert genau wie ein normales Quine, abgesehen davon, dass es als Bild ausgegeben wird. Das aktuelle Format ist
png
, aber das Format kann leicht geändert werden, indem alle Instanzen vonpng
im Programm durch das gewünschte Format ersetzt werden.Im Gegensatz zu ein paar Antworten hier ist dies eine echte Quine; kein lesen der programmdatei.
quelle
Javascript + JQuery
153148Regulär
Golf gespielt
quelle
$
? Verwenden Sie auch jQuery?stdio.h
xD. Das Programm ohne jQuery zu schreiben ist jedoch einfach. Ersetzen Sie einfach$('<canvas/>')[0]
mitdocument.createElement('canvas')
und$('body').append
mitdocument.write
. jQuery hat mir Bytes gerettet.zsh, 57 × 0,9 = 51,3
Übergeben Sie den Ausgabedateinamen als Argument.
Produziert:
quelle
C99 (unter Verwendung von SDL & SDL_ttf),
414354346 - 15% = 294,1Das ist ziemlich hässlich ohne weitere Zeilenumbrüche, aber leider müssen sie fehlen. Die Text-Rendering-Funktion blockiert keine Steuerzeichen, sodass Zeilenumbrüche im Code in der Ausgabe manuell gerendert werden müssen.
Hier ist derselbe Code, jedoch mit einigen zusätzlichen Zeilenumbrüchen zur besseren Lesbarkeit:
Leider werden der grafischen Ausgabe dadurch keine Zeilenumbrüche hinzugefügt:
Die Ausgabe ist immer noch lesbar, aber mit 9-Punkt-Ausgabe und der roten Schriftfarbe ist es ein bisschen schärfer. Sie können es auf Kosten eines Charakters verbessern durch Ersetzen der
9
mit12
. (Beachten Sie, dass die Abmessung des resultierenden Bildes auf 2048 x 80 fest codiert ist. Um den Unterschieden bei den verschiedenen Schriftarten Rechnung zu tragen, wurde am rechten Rand und am Zeilenabstand einiges an Übermaß hinzugefügt, sodass eine Schrift der Größe 12 immer noch bequem passen sollte Wenn Sie den Wert jedoch weiter erhöhen möchten, müssen wahrscheinlich auch die Abmessungen geändert werden.)Der Befehl zum Erstellen des Programms lautet:
Das Programm geht davon aus, dass sich
q.ttf
im aktuellen Verzeichnis eine Schriftdatei befindet, die beim Ausführen aufgerufen wird. Ich habe mich zuvor darum gekümmert, indem ich den folgenden Befehl ausgeführt habe (der auf den meisten modernen Linuxen funktionieren sollte):(Sie können stattdessen auch Ihre eigene TrueType-Lieblingsschriftart importieren.)
Nach dem Ausführen des Programms wird die Bildausgabe im aktuellen Verzeichnis in einer Datei mit dem Namen erstellt
q.bmp
. Leider sind Windows-Bitmap-Dateien das einzige Ausgabeformat, das dieses Programm bietet. Das Hinzufügen weiterer Ausgabeformate würde das Verknüpfen weiterer Bibliotheken erfordern.Beachten Sie, dass dieses Programm die Syntax von C99 nutzt, um nicht einfache Literalwerte einzufügen, wodurch die Anzahl der zu definierenden Variablen erheblich reduziert wird. Dies ist etwas, das mehr C-Golfer ausnutzen sollten.
quelle
C # - 498 - 15% = 423,3
Damit kann wohl mehr golfen werden. Ich habe noch nie Quines oder solche Grafiken in C # gemacht:
Ausgabe:
Das Hinzufügen eines anderen Formats wäre einfach. Ich bin mir nicht sicher, ob es sich lohnt.
quelle
Ruby, 104 Zeichen
Beispielausgabe auf Anfrage: i.imgur.com/jMC594C.png
quelle
Python:
255238 -10% -15% =195,075182,07Verwendung:
Dies ist eine echte Quine, die die Ausgabe in die in der Befehlszeile angegebene Datei zeichnet. Das Dateiformat wird einfach durch Ändern der Dateinamenerweiterung eingestellt (z. B.
quine.jpg
für ein JPEG undquine.png
für ein PNG).Beispielausgabe (2000x20 Bild):
quelle
2e3
anstelle von verwenden2000
.2e3
ist einfloat
undImage.new
verlangtint
s.