Schreiben Sie eine Quine, die sich beim Ausführen im aktuellen Verzeichnis in einer Quelldatei mit dem Namen selbst erstellt. Wir werden hier Windows verwenden, daher muss der Dateiname (und damit Quine) die folgenden Einschränkungen aufweisen:
- Keines dieser Zeichen
\ / : ? * < > |
- Weniger als
211255 Zeichen
Einschränkungen und Annahmen
Ihr Code muss ein vollständiges Programm sein (es wird schließlich ausgeführt).
Kein Kopieren aus der Quelldatei.
Sie können davon ausgehen, dass es keine andere Datei mit Ihrem Quine als Namen gibt (da dies Quine (1) erzeugen würde ).
Fehler sind zulässig (solange sie nicht in den Quellcode gelangen
Dies ist Code-Golf , kürzester Code in Bytes gewinnt!
Bearbeiten
Vielleicht war mir nicht klar, die Datei mit dem Namen des Quines muss tatsächlich das Quine enthalten. Mein Fehler.
Antworten:
Vitsy,
1027 BytesWenn
:
erlaubt, könnte ich dies auf 11 Bytes verkürzen. :(Erläuterung:
Die beiden Stapel sind am Ende identisch. In einigen Java-Versionen kann dies
FileNotFoundException
aufgrund unterschiedlicher Implementierungen derFileInputStream
Klasse zu einem Fehler führen.Vorherige Antwort vor dem Bearbeiten:
Erläuterung:
Da ich genauso gut könnte, ist hier ein Diagramm der Schritte, die innerhalb der Stapel auftreten (jeder Stapel wird durch dargestellt
[]
):Ich bin mir eigentlich nicht sicher, wie das richtig funktioniert. winzige Änderungen führen dazu, dass dies unterbrochen wird. Zum Beispiel sollte das Platzieren
&
an verschiedenen anderen Orten genauso gut funktionieren, aber es verursachtClassCastException
s,IOException
s undArrayOutOfBoundsException
s, je nachdem, wo Sie es platzieren. Möglicherweise muss ich einige Fehlerbehebungen vornehmen.quelle
Push a new stack to the stack stack.
o
? ;)Node.js,
5652 BytesDies gibt die Warnung aus
Wenn Sie das All-grün wollen, es kostet 4 Bytes zu ändern
writeFile
zuwriteFileSync
.quelle
Lua, 96 Bytes.
Tippte dies auf meinem Telefon, sollte funktionieren, aber ich werde es testen, wenn ich an einen Computer komme.
quelle
sting.format
zustring.format
zweimal.C 134 Bytes
quelle
*
so dass es nicht so aussieht, als wäre es gemäß den Regeln erlaubt.