ข้อมูล
ตัวเลข 1 ถึง 9 เป็นตัวแทนของเซลล์หนึ่งในละแวกใกล้เคียงของมัวร์โดยที่ 5 เป็นเซลล์กลาง ดังนั้น:
123
456
789
1={-1,-1} 2={-1, 0} 3={-1, 1}
4={ 0,-1} 5={ 0, 0} 6={ 0, 1}
7={ 1,-1} 8={ 1, 0} 9={ 1, 1}
ความท้าทาย
คุณสามารถรับอินพุตผ่าน STDIN, ARGV หรืออาร์กิวเมนต์ของฟังก์ชันและส่งคืนผลลัพธ์หรือพิมพ์ไปที่ STDOUT อินพุตคือกริด N x N (ทอรัสทอพอโลยีหมายถึงถ้า x หรือ y คือ <1 จากนั้น x หรือ y = N และถ้า x หรือ y> N จากนั้น x หรือ y = 1) และโปรแกรมของคุณจะต้องแสดงผลลัพธ์หนึ่ง กริดโดยแทนที่แต่ละเซลล์ด้วยค่าที่เซลล์เพื่อนบ้านของมัวร์
ตัวอย่างอินพุตกริด (2 x 2):
13
79
เอาท์พุท:
97
31
คำอธิบาย:
เริ่มต้นที่ตำแหน่ง 1,1 เรามีค่า 1 เนื่องจากค่า 1 = {- 1, -1} เราต้องดึง 1 + (- 1), 1 + (- 1) = 0,0 และเนื่องจากมันคือ torus 0,0 เราจึงพันรอบเป็น N ดังนั้นเราจึงดึงค่าของเซลล์ที่ตำแหน่ง 1,1 (1) ด้วยค่าของเซลล์ที่ตำแหน่ง 2,2 (9)
สำหรับเซลล์ถัดไป 1,2 เรามีค่า 3 (= -1, 1) ดังนั้น 1 + (- 1), 2 + (1) = 0,3 ห่อประมาณ 2,1 ซึ่งเป็นค่า 7
ค่าของเซลล์ถัดไปที่ 2,1 คือ 7 (= 1, -1) ดังนั้น 2+ (1), 1 + (- 1) = 3,0 ล้อมรอบถึง 1,2 ซึ่งเป็นค่า 3
ค่าเซลล์ถัดไปที่ 2,2 คือ 9 (= 1, 1) ดังนั้น 2+ (1), 2 + (1) = 3,3 ห่อประมาณ 1,1 ซึ่งเป็นค่า 1
ตัวอย่างเพิ่มเติม
อินพุตกริด (3 x 3):
123
456
789
ผลลัพธ์ที่คาดหวัง:
987
654
321
อินพุตกริด (5 x 5):
77497
81982
32236
96336
67811
ผลลัพธ์ที่คาดหวัง:
28728
37337
11923
73369
77433
หมายเหตุสุดท้าย
หากคุณมีคำถามใด ๆ อย่าลังเลที่จะแสดงความคิดเห็น นี่คือความท้าทายของการเล่นกอล์ฟรหัสชนะที่สั้นที่สุด!