CJam, 31 27 byte
CJam jauh lebih baru dari tantangan ini, jadi jawaban ini tidak memenuhi syarat untuk diterima. Namun, ini adalah tantangan kecil Sabtu malam yang rapi. ;)
8S*9,:)+9*9/2%{_W%1>+z}2*N*
Uji di sini.
Idenya adalah untuk membentuk kuadran kiri atas terlebih dahulu. Inilah cara kerjanya:
Pertama, bentuk string " 123456789"
, gunakan 8S*9,:)+
. String ini panjangnya 17 karakter. Sekarang kita ulangi string 9 kali, dan kemudian membaginya menjadi substring dengan panjang 9 dengan 9/
. Ketidakcocokan antara 9 dan 17 akan mengimbangi setiap baris satu karakter ke kiri. Mencetak setiap substring pada barisnya sendiri yang kita dapatkan:
1
23456789
12
3456789
123
456789
1234
56789
12345
6789
123456
789
1234567
89
12345678
9
123456789
Jadi jika kita hanya membuang setiap baris lain (yang dengan mudah bekerja dengan melakukan 2%
), kita mendapatkan satu kuadran yang diinginkan:
1
12
123
1234
12345
123456
1234567
12345678
123456789
Akhirnya, kami merefleksikan ini dua kali, mentransposisi kisi-kisi di antaranya untuk memastikan bahwa dua operasi pemantulan berjalan dengan sumbu yang berbeda. Mirroring itu sendiri adil
_ "Duplicate all rows.";
W% "Reverse their order.";
1> "Discard the first row (the centre row).";
+ "Add the other rows.";
Terakhir, kami hanya bergabung dengan semua baris dengan baris baru, dengan N*
.