CJam, 31 27 바이트
CJam은이 도전보다 훨씬 새로운 것이므로이 답변을 수락 할 수 없습니다. 그러나 이것은 토요일 저녁의 작은 도전이었습니다. ;)
8S*9,:)+9*9/2%{_W%1>+z}2*N*
여기에서 테스트하십시오.
아이디어는 왼쪽 위 사분면을 먼저 형성하는 것입니다. 작동 방식은 다음과 같습니다.
먼저을 " 123456789"
사용하여 문자열을 형성하십시오 8S*9,:)+
. 이 문자열의 길이는 17 자입니다. 이제 문자열을 9 번 반복 한 다음을 사용하여 길이가 9 인 하위 문자열로 분할합니다 9/
. 9와 17 사이의 불일치는 다른 모든 행을 한 문자 왼쪽으로 오프셋합니다. 각 부분 문자열을 자체 줄에 인쇄하면 다음과 같은 결과가 나타납니다.
1
23456789
12
3456789
123
456789
1234
56789
12345
6789
123456
789
1234567
89
12345678
9
123456789
따라서 우리가 다른 행을 모두 삭제하면 (편리하게 작동하여 2%
) 원하는대로 하나의 사분면을 얻습니다.
1
12
123
1234
12345
123456
1234567
12345678
123456789
마지막으로 두 번 미러링하여 두 미러링 작업이 다른 축을 따라 이동하도록 그리드를 바꿉니다. 미러링 자체는 단지
_ "Duplicate all rows.";
W% "Reverse their order.";
1> "Discard the first row (the centre row).";
+ "Add the other rows.";
마지막으로 모든 줄을 개행과 함께 연결 N*
합니다.