Tor
Ziel des Programms ist es, ein ASCII-Kunstrechteck zu zeichnen, dessen Größe sich horizontal und vertikal abwechselt. Jedes Mal, wenn sich die Größe des Rechtecks verdoppelt, wird der zusätzliche Bereich durch ein anderes Zeichen dargestellt und die vorherigen Bereiche bleiben unverändert. Die beiden kleinsten Abschnitte enthalten jeweils ein Zeichen und dürfen sich in einer beliebigen Ecke befinden.
Das Programm akzeptiert eine einzelne Ganzzahl als Eingabe und definiert die Anzahl der Abschnitte, die das vollständige Rechteck enthält.
Andere externe Ressourcen oder Eingaben sind nicht zulässig.
Sample Ein- und Ausgabe
10
ABDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
CCDDFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
EEEEFFFFHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
GGGGGGGGHHHHHHHHJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
IIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJ
Auswahlkriterium
Der kürzeste Code in einer Woche gewinnt die Punkte.
Antworten:
APL, 25 Zeichen / Byte *
Explosionszeichnung
Beispiele
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ *: APL kann in einem eigenen (älteren) Einzelbyte -Zeichensatz geschrieben werden, der APL-Symbole den oberen 128-Byte-Werten zuordnet
. Aus diesem Grund kann ein Programm mit N Zeichen , das nur ASCII-Zeichen und APL-Symbole verwendet, als N Byte lang betrachtet werden.
quelle
GolfScript, 30 Zeichen
Beispiel ( online ausführen ):
quelle
Python 2.7 - 85
103Dies verwendet die
zip(*s)
Syntax, um die Liste fortlaufend zu transponieren. Vielen Dank an Daniel für seinen Tipp, der 12 Charaktere rasiert hat! Rasieren Sie sich dann noch ein paar Mal, indem Sie Zahlen anstelle von Buchstaben verwenden.Auch wird dies
1<<x
eher verwendet, als dass2**x
die Bitverschiebung eine niedrigere (?) Priorität hat. Beobachten:Und einige Ausgaben:
quelle
for i in s:print''.join(i)
.Rubin, 88
Liest N von der Standardeingabe.
Anwendungsbeispiel für N = 8:
Ausgabe:
N = 10
Ausgabe:
quelle
J
57,43Beispiele:
quelle
MATLAB, 86 Zeichen
Mein kürzester Versuch in MATLAB, gepimpt von @flawr (zweimal!):
Beispielausgabe:
quelle
function M=f(n) M=''; if n M=cat(mod(n,2)+1,f(n-1),64+n*ones(2.^fix([n-1,n-2]/2))); end
fix
durchfix(n/2-[.5,1])
PS: Wirklich schöne Lösung mitcat
, wusste nicht, über diese Verwendung, wo Sie die Dimension wählen können =)q [73 Zeichen]
Beispiel
quelle
Sclipting , 59 Zeichen
(Dieses Programm könnte etwas kürzer sein, wenn ich Anweisungen für den Logarithmus zur Basis 2 hätte, aber das tue ich nicht, also mache ich es manuell mit einer Schleife.)
Kommentierter Code
n
ist der Eingang.Ausgabe
Für
n
= 6:Natürlich können Sie
뀀
(@
) auch in ein beliebiges anderes Basiszeichen ändern , z. B. mit글
(Leerzeichen) undn
= 7:Die höchste Zahl, die das Programm nicht verlängert, ist
믰
(= 255), was uns (n
= 8 dieses Mal) ergibt :Wenn wir das Programm 1 Zeichen länger machen, zB
냟및
(=\u4DFF
) undn
= 9, erhalten wir:quelle
C #
239185182180 BytesC # hat nichts mit den weniger ausführlichen Sprachen zu tun.
Ausgabe, Zeichen für die Hübschheit ausgewählt:
quelle
for
Schleife, so dass 182PERL, 122 Zeichen
mit zusätzlichen Leerzeichen:
Ausgabe:
quelle
PERL,
9481 ZeichenEs konstruiert das Fraktal iterativ Buchstabe für Buchstabe und fügt neue Zeilen und Spalten sowie Zeilen und Spalten hinzu ... Verwendet dazu einfache Zeichenfolgenoperationen. Beachten Sie, dass ich die Standardvariable anstelle des Buchstabens 1 missbrauche, um Syntaxzucker zuzulassen (wie das Weglassen von Leerzeichen
$:x2
usw.).Mit zusätzlichen Leerzeichen und Kommentaren:
Einige Ausgaben:
quelle
Sclipting , 45 Zeichen
Diese Lösung funktioniert völlig anders als die andere Sclipting-Lösung. Es ist viel langweiliger, aber es ist kürzer ...
Kommentiert
quelle
Delphi 348 || 449 mit Einzug
Ohne Einzug
Mit Einzug
quelle
CJam, 30 (23) Bytes
CJam ist ein paar Monate jünger als diese Herausforderung, sodass es nicht für das grüne Häkchen geeignet ist.
Teste es hier.
Das OP hat in einem Kommentar klargestellt, dass jeder Satz eindeutiger druckbarer Zeichen zulässig ist. Daher nehme ich nur die druckbaren ASCII-Zeichen von Anfang an (mit einem Leerzeichen in der Ecke, als
!
Nächstes usw.).Wenn sich die Ausrichtung zwischen geraden und ungeraden Eingaben ändern kann (was ich nicht glaube, aber das macht die GolfScript-Übermittlung), kann ich dies in 25 Bytes tun:
Die Idee ist wirklich einfach: Beginnen Sie mit einem Raster, das ein Leerzeichen enthält, und transponieren Sie es dann N-1-mal und verdoppeln Sie alle Zeilen mit dem nächsten Zeichen.
Für die Langfassung transponiere ich am Ende auch nochmal N-1, um eine gleichmäßige Orientierung zu gewährleisten.
quelle