Die Aufgabe ist eine ziemlich einfache Herausforderung mit einem Twist. Sie müssen Ihren Quellcode in Form einer Pyramide ausgeben. Die Form einer Pyramide ist unten definiert:
1
234
56789
ABCDEFG
HIJKLMNOP
QRSTUVWXYZa
bcdefghijklmn
......etc......
Die Hauptbeschränkung dieser Herausforderung besteht darin, dass Ihr Quine genau genug Bytes enthalten muss, um das Muster der Pyramide nicht zu behindern. Zum Beispiel würden die folgenden Programmlängen funktionieren:
1-byter: 1st layer of the pyramid (not allowed by definition of a quine).
4-byter: 1st and 2nd layers of the pyramid.
9-byter: 1st, 2nd and 3rd layers of the pyramid.
etc...
Also, wenn Ihr Programm war:
QWERTY
Es wäre nicht gültig, weil es wie folgt arrangieren würde:
Q
WER
TY
Wenn Ihr Programm jedoch QWERTYUIO wäre, wäre es in Ordnung:
Q
WER
TYUIO
Regeln
- Standardlücken sind offensichtlich nicht zulässig, Sie dürfen Ihre eigene Quelle nicht lesen.
- Die Pyramide muss zentriert sein, nachfolgende Zeichen sind zulässig, aber nicht erforderlich.
- Außerdem kann jedes Zeichen verwendet werden, um die Pyramide zu zentrieren, muss es aber nicht sein
(char)32
.
- Außerdem kann jedes Zeichen verwendet werden, um die Pyramide zu zentrieren, muss es aber nicht sein
- Ihre Quine muss zu einer Pyramide geformt werden können.
- Die ursprüngliche Bestellung Ihres Quellcodes muss beibehalten werden.
- Ihr Quellcode darf NICHT das Zeichen enthalten, das zum Formatieren der Pyramide verwendet wird.
- Wenn Ihr Quellcode ein Leerzeichen enthält, benötigen Sie ein weiteres Zeichen für das Format.
- Sie können Kommentare in Ihrem Quine verwenden, um die richtige Größe zu "füllen".
- Offensichtlich müssen diese als Teil der Quine ausgegeben werden.
- Wenn das Programm Zeilenumbrüche enthält, sind diese nicht Teil des Quines und sollten in der Ausgabe weggelassen werden.
- Die Form wird in Zeichen und nicht in Bytes gezählt. Wenn die Form fehlerhaft ist, machen Sie es nicht richtig.
Die niedrigstmögliche Punktzahl sollte hier 4 sein.
code-golf
ascii-art
restricted-source
quine
Magische Krakenurne
quelle
quelle
Antworten:
05AB1E , 36 Bytes
Probieren Sie es online aus!
Wenn
trailing characters are allowed
auch am Ende der Ausgabe bedeutet,0"D34çýā·<£.c"D34çýā·<£.c
ist eine Schicht mit 25 Bytes kürzer.quelle
34ç
ist die Basis aller 05AB1E Quines, nicht wahr haha? Ich bin mir auch nicht sicher, wie ich mich über die zufällige Anzahl von nachgestellten Zeilenumbrüchen fühle ... Ich würde es vorziehen, wenn jemand anderes diesen Anruf tätigt (was ist die Norm, 1 nachfolgendes / vorangestelltes ist zulässig?), Das am Rande super zu sein scheint.ā·<
ich benutzte9ÅÉ
(in der 25 Byter, dachte nicht an die nachfolgende Newline ..)Java 11,
324256227 Bytes-29 Bytes dank @JoKing .
Ausgaben mit führenden Leerzeichen, um das Dreieck zu bilden. (Beachten Sie, dass die Leerzeichen zwischen
var s
undint i
Tabulatoren und keine Leerzeichen sind.)Probieren Sie es online aus.
Erläuterung:
Quine-Teil :
var s
enthält den unformatierten Quellcode String%s
wird verwendet, um diesen String mit sich selbst in sich zu setzens.format(...)
%c
,%1$c
Und34
werden verwendet , um die doppelten Anführungszeichen zu formatieren ("
)%%
wird verwendet, um die zu formatieren%
s.format(s,34,s)
fasst alles zusammenHerausforderungsteil:
Was mit einem
java.lang.StringIndexOutOfBoundsException: begin 225, end 256, length 226
Fehler für dieString#substring(int,int)
Methode endet, die Iteration nach dem Drucken des Ergebnisses ( was laut Meta in Ordnung ist ).quelle
s=s.format
wenn du stattdessen das Format in der Schleife haben kannst%%
in der Zeichenfolge und nur eine%
im tatsächlichen Code, aber dies bedeutet, dass die Kommentare obligatorisch sind///
in der Zeichenfolge so die Zeichenfolge lang genug ist , um es zu der erwarteten Iteration zu gehen , alles zu drucken, bevor mit dem AnhaltStringIndexOutOfBoundsException
für die.substring
. Und mit nur zwei Trailing//
am Ende des eigentlichen Programms, da nur zwei Trailing gedruckt werden//
. :)Python 2 , 81 Bytes
Probieren Sie es online aus!
Eine Bewertung, bei der Leerzeichen als Füllzeichen verwendet werden.
quelle
;)
Perl 6 , 67 Bytes
Probieren Sie es online aus!
Ich habe ein paar Unicode-Zeichen verwendet, um diese zusätzliche Ebene herauszudrücken. Ausgaben mit Leerzeichen:
Erläuterung:
quelle
Python 2 , 169 Bytes
Dient
0
zum Formatieren der Pyramide.Probieren Sie es online aus!
Python 2 , 147 Bytes
Dies verwendet die Regel. Wenn das Programm Zeilenumbrüche / Tabulatoren enthält, sind diese nicht Teil des Quines und sollten in der Ausgabe weggelassen werden.
Probieren Sie es online aus!
quelle
Gol> <> , 36 Bytes
Probieren Sie es online aus!
eine noch jüngere Version, 36 Bytes
Ich fühle mich so nah dran, es eine Zeile kürzer zu machen, grrrr ....
Probieren Sie es online aus!
noch jüngere Version, 36 Bytes
Der Code dieses einen ist kleiner, aber leider kommt er immer noch in der gleichen Menge heraus. Der Kommentar nimmt den Rest des Platzes ein.
Probieren Sie es online aus!
etwas jüngere Version, 36 Bytes
Wowza! Heh, ich habe das nur benutzt, um etwas Platz zu füllen, aber das Programm funktioniert, um Golf zu spielen, habe ich ein paar vorgefertigte Werte verwendet, anstatt Variablen zu verwenden!
Probieren Sie es online aus!
Ältere Version, 42 Bytes
Dies hat einen nachgestellten Zeilenumbruch und mehr Zeichen als ich möchte ...
Ich werde so heftig Golf spielen ...
Probieren Sie es online aus!
quelle
Sauber , 256 Bytes
Probieren Sie es online aus!
So ziemlich das Standard-Quine, praktisch auch ein Template-Quine, mit der hinzugefügten Formatierungsfunktion.
quelle
R ,
169144 BytesProbieren Sie es online aus!
Es ist gelungen, es zu verkürzen, indem Sie zu einer Zeichenfolge wechseln, die analysiert wird, und nicht zu einem Ausdruck, der nicht mehr angezeigt wird. Musste eine Neudefinition eines unären Operators verwenden, um es unter die 144 zu bekommen.
quelle
C # (Visual C # Interactive Compiler) , 225 Byte
Verwendet ein
STX
Zeichen als Polsterung. Ich wusste nicht, dass Kevin Cruijssen vor dem Posten bereits eine genaue Kopie in Java eingereicht hatte, bis ich fertig war, aber ich entschied mich trotzdem, dies zu posten.Probieren Sie es online aus!
quelle