กำหนดอินพุตของชุดอักขระที่แสดงถึงการเคลื่อนไหวบนกริดหกเหลี่ยมเอาท์พุทพิกัดสุดท้ายของ "พอยน์เตอร์"
รูปหกเหลี่ยมของเราจะมีหมายเลขเป็นอย่างนั้น (ลองนึกภาพสี่เหลี่ยมกริดที่มีคอลัมน์เลขคี่ทุกคอลัมน์เลื่อนลงด้านล่างเล็กน้อย):
_____ _____ _____ _____
/ \ / \ / \ / \
/ -3,-2 \_____/ -1,-2 \_____/ 1,-2 \_____/ 3,-2 \
\ / \ / \ / \ /
\_____/ -2,-1 \_____/ 0,-1 \_____/ 2,-1 \_____/
/ \ / \ / \ / \
/ -3,-1 \_____/ -1,-1 \_____/ 1,-1 \_____/ 3,-1 \
\ / \ / \ / \ /
\_____/ -2,0 \_____/ 0,0 \_____/ 2,0 \_____/
/ \ / \ / \ / \
/ -3,0 \_____/ -1,0 \_____/ 1,0 \_____/ 3,0 \
\ / \ / \ / \ /
\_____/ -2,1 \_____/ 0,1 \_____/ 2,1 \_____/
/ \ / \ / \ / \
/ -3,1 \_____/ -1,1 \_____/ 1,1 \_____/ 3,1 \
\ / \ / \ / \ /
\_____/ \_____/ \_____/ \_____/
ตัวชี้เริ่มต้นที่ (0, 0)
คำแนะนำที่คุณต้องสนับสนุนมีดังนี้:
q
: เลื่อนไปทางซ้ายw
: ขยับขึ้นe
: เลื่อนขึ้นไปทางขวาa
: เลื่อนลงไปทางซ้ายs
: ย้ายลงd
: เลื่อนลงไปทางขวาr
: หมุนกริดตามเข็มนาฬิกาR
: หมุนกริดทวนเข็มนาฬิกา
คำสั่งการหมุนจะหมุนกริดทั้งหมดในขณะที่รักษาตัวชี้ไว้ที่พิกัดเดียวกัน (เพราะqweasd
อะไรพวกเขาเข้ากันได้กับทิศทางอย่างดีบนคีย์บอร์ด QWERTY)
เพื่อช่วยให้เห็นภาพนี้นี่คือสิ่งที่คำสั่งการเคลื่อนไหวจะทำสมมติว่าตัวชี้เริ่มตรงกลาง:
_____
/ \
_____/ w \_____
/ \ / \
/ q \_____/ e \
\ / \ /
\_____/ \_____/
/ \ / \
/ a \_____/ d \
\ / \ /
\_____/ s \_____/
\ /
\_____/
หลังจากการหมุนตามเข็มนาฬิกา ( r
) คำสั่งจะถูกแมปอีกครั้ง (ลองจินตนาการว่ามันเป็นการหมุนทั้งกริดฐานสิบหก แต่ยังคงรักษา "w" ไว้เช่น ฯลฯ ซึ่งเทียบเท่ากับสิ่งต่อไปนี้):
_____
/ \
_____/ e \_____
/ \ / \
/ w \_____/ d \
\ / \ /
\_____/ \_____/
/ \ / \
/ q \_____/ s \
\ / \ /
\_____/ a \_____/
\ /
\_____/
ในทำนองเดียวกันการหมุนทวนเข็มนาฬิกา ( R
) หลังจากนั้นจะกลับไปที่ตารางปกติและหมุนทวนเข็มนาฬิกาอีกครั้งจะ "remap" เพื่อqwedsa
aqweds
ต้องป้อนข้อมูลเป็นสตริงเดียวและเอาต์พุตสามารถเป็นสตริงเดี่ยวที่เข้าร่วมโดยอักขระที่ไม่ใช่ตัวเลข (เช่น1 2
หรือ3,4
) หรืออาร์เรย์ของจำนวนเต็ม
เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
กรณีทดสอบ:
In Out
---------------------------------
edeqaaaswwdqqs -2, 0
dddddddddd 10, 5
wswseaeadqdq 0, 0
<empty string> 0, 0
esaaqrweesrqrq -1, 0
wrwrwrwrw -1, 0
RRssrrrs -1, -1
aRRRRwddrqrrqqq -1, -4
rrrrrrrrrrrrRRRRRRrrrrrrq -1, -1
rrRrRrrRrrrrRRrRrRR 0, 0