CJam, 31 27 Bytes
CJam ist viel neuer als diese Herausforderung, daher kann diese Antwort nicht akzeptiert werden. Dies war jedoch eine nette kleine Herausforderung am Samstagabend. ;)
8S*9,:)+9*9/2%{_W%1>+z}2*N*
Teste es hier.
Die Idee ist, zuerst den oberen linken Quadranten zu bilden. So funktioniert das:
Bilden Sie zunächst die Zeichenfolge " 123456789"
mit 8S*9,:)+
. Diese Zeichenfolge ist 17 Zeichen lang. Nun wiederholen wir den String 9 mal und teilen ihn dann mit in Teilstrings der Länge 9 auf 9/
. Die Nichtübereinstimmung zwischen 9 und 17 versetzt jede zweite Zeile um ein Zeichen nach links. Wenn wir jeden Teilstring in einer eigenen Zeile drucken, erhalten wir:
1
23456789
12
3456789
123
456789
1234
56789
12345
6789
123456
789
1234567
89
12345678
9
123456789
Wenn wir also einfach jede zweite Zeile fallen lassen (was bequemerweise so funktioniert 2%
), erhalten wir einen Quadranten wie gewünscht:
1
12
123
1234
12345
123456
1234567
12345678
123456789
Zum Schluss spiegeln wir dies zweimal und transponieren das Raster dazwischen, um sicherzustellen, dass die beiden Spiegelvorgänge entlang unterschiedlicher Achsen verlaufen. Die Spiegelung selbst ist gerecht
_ "Duplicate all rows.";
W% "Reverse their order.";
1> "Discard the first row (the centre row).";
+ "Add the other rows.";
Zuletzt verbinden wir alle Zeilen mit Zeilenumbrüchen, mit N*
.