CJam, 31 27 bayt
CJam bu mücadeleden çok daha yeni, bu nedenle bu cevap kabul edilmeye uygun değil. Bu olsa da, temiz küçük bir Cumartesi akşamı mücadelesiydi. ;)
8S*9,:)+9*9/2%{_W%1>+z}2*N*
Burada test et.
Fikir ilk önce sol üst kadranı oluşturmaktır. İşte bu nasıl çalışır:
İlk önce, dizgiyi " 123456789"
kullanarak 8S*9,:)+
. Bu dize 17 karakter uzunluğundadır. Şimdi dizgiyi 9 kez tekrarlıyoruz ve sonra uzunluğu 9 olan alt dizgilere bölüyoruz 9/
. 9 ile 17 arasındaki uyumsuzluk diğer tüm satırları bir karakter sola kaydırır. Her alt diziyi kendi satırına basarız:
1
23456789
12
3456789
123
456789
1234
56789
12345
6789
123456
789
1234567
89
12345678
9
123456789
Bu nedenle, diğer bütün satırları (uygun şekilde çalıştıran 2%
) düşürürsek , istediğiniz gibi bir kadran elde ederiz:
1
12
123
1234
12345
123456
1234567
12345678
123456789
Son olarak, iki yansıtma işleminin farklı eksenler boyunca ilerlemesini sağlamak için ızgarayı aralarında geçirerek bunu iki kez yansıtıyoruz. Yansıtma kendisi sadece
_ "Duplicate all rows.";
W% "Reverse their order.";
1> "Discard the first row (the centre row).";
+ "Add the other rows.";
Son olarak, sadece yeni satırlarla tüm satırlara katılıyoruz N*
.