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*
สุดท้ายเราเพียงเข้าร่วมทุกสายที่มีการขึ้นบรรทัดใหม่ด้วย