Das Ziel dieser Herausforderung ist es, ein Programm zu erstellen, das den n-ten Buchstaben seines Quellcodes ausgibt, wobei n als Eingabe für das Programm angegeben wird. Wie bei den meisten Quine-Herausforderungen ist es Ihnen nicht gestattet, Ihren Quellcode als Datei zu lesen oder integrierte Quine-Funktionen zu verwenden.
Eingang
Eine ganze Zahl 0 <= n <len (Programm).
Ausgabe
Das n-te Zeichen (nicht Byte) Ihres Programms.
Gewinnen
Wie die meisten Codegolf-Fragen gewinnen Sie die Herausforderung, indem Sie die Herausforderung mit der geringsten Anzahl von Bytes lösen.
Boni
-5% Wenn Ihr Programm negative Indizes unterstützt, verwenden Sie den Python-Stil (z. B. -1 ist das letzte Zeichen Ihres Programms). Bei Verwendung mit dem folgenden Bonus müssen Ihre Bereiche negative Indizes unterstützen.
-20% Wenn Ihr Programm zusätzlich zu den oben genannten Anforderungen Bereiche als Eingabe (beliebiges Format) unterstützt.
-25% Wenn Ihr Programm beide Boni erfüllt.
Bestenlisten
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Antworten:
Pyth, 0,75
(Zufällig ist es auch ein CJam-Polyglot und wahrscheinlich viele andere Sprachen.)
Erwartet Eingabe auf STDIN:
Natürlich funktioniert jede einzelne Ziffer. Nicht gerade die interessanteste Herausforderung in Pyth.
quelle
Javascript ES6, 31 Bytes
Erläuterung
Das Standard-Quine-Framework:
[prompt()]
Das Addon ruft den Wert am Eingabeindex des resultierenden Quine-Strings ab.quelle
𝔼𝕊𝕄𝕚𝕟 9 Zeichen / 19 Byte
Try it here (Firefox only).
Ja, 19. Byte!
0
funktioniert auch (und ist viel besser), aber es ist viel zu trivial für meinen Geschmack.Darüber hinaus
ℹ ï,⧺ï
würde auch funktionieren, aber quine Funktionen sind nicht zulässig.Erläuterung
Das Standard-Quine-Framework ist
⟮ɕṡ+ᶈ0
.)⎖ï
Nimmt die resultierende Quine-Zeichenfolge und ruft das Zeichen am Eingabeindex ab.Bonuslösung, 11,4 Zeichen / 25,65 Byte
Try it here (Firefox only).
Dieser qualifiziert sich für den 5% -Bonus, übertrifft aber immer noch nicht meine ursprüngliche Einreichung.
Erläuterung
Dieser nutzt den Stapel.
ᵖ…ɕṡ+ᶈ0;
Drückt einfach die einzelnen Zeichen des Quine-Strings auf den Stapel undôᵍï
gibt das Zeichen direkt am Eingabeindex (positiv oder negativ) im Stapel aus.quelle
CJam, 12,35 Bytes
Das Programm ist 13 Byte lang und qualifiziert sich für den Bonus × 0,95 . Probieren Sie es online!
Wie es funktioniert
quelle
0
wäre etwas kürzer gewesen ...Rubin, 53 × 0,75 = 39,75
Erzeugt einen HEREDOC-String, der durch eine
2
eigene Zeile begrenzt ist, verkettet ihn (*2
) und fügt ihn im Finale2
über ein Zeichenliteral hinzu . Verwenden Sie Ruby's Built-InString#[]
, das positive Ganzzahlen, negative Ganzzahlen und Bereiche unterstützt (Eingabe in das Formularm..n
).$><<
ausgegeben wird. (puts
würde hier zusätzlichen Platz benötigen).quelle
gets.to_i
würde das Gleiche tuneval gets
und klarer sein. Nicht ganzzahlige Eingaben würden nicht verarbeitet, aber das ist ohnehin nicht erforderlichRuby, 38,25 Bytes
Unterstützt negative Indizes und Bereiche. Ich habe beide
$><<
und deneval
Trick des Histokraten unverblümt aufgegriffen, und der Quine-Trick war von Anfang an der Trick eines anderen, also mache ich diesen CW.quelle
Python 2, 46,55 Bytes
Unterstützt negative Indizes.
quelle
Haskell, 122 Bytes
Ungolfed:
quelle
Befunge 93, 5 Bytes
Das ist ziemlich (sehr) spät, aber ich werde es trotzdem posten:
quelle