ลักษณะ
งานของความท้าทายนี้คือการประดิษฐ์โปรแกรมหรือฟังก์ชั่นที่ติดตามวัตถุได้รับในพื้นที่
I / O
โปรแกรมของคุณจะได้รับ 3 อินพุตซึ่งอาจใช้วิธีการที่เหมาะสม :
n
จะมีขนาดเท่ากับด้านข้างของเครื่องบิน (ดังนั้นสำหรับเครื่องบินของคุณจะเป็น ) คุณอาจคิดว่าn
จะเป็นจำนวนเต็มคี่เสมอ
s
จะเป็นตำแหน่งเริ่มต้นของวัตถุที่กำหนดเป็นคู่ของพิกัด
D
จะเป็นเวกเตอร์ของคู่ที่สั่ง D
จะเป็นไปตามรูปแบบซึ่งจะเป็นหนึ่งของ'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
สำหรับพระคาร์ดินัลและทิศทาง intercardinal หลักและจะเป็นจำนวนเต็มสำหรับจำนวนของ 'เห็บฯ
เมื่อได้รับอินพุตเหล่านี้โปรแกรมของคุณจะต้องส่งออกการติดตามวัตถุในระนาบ
กฎระเบียบ
เอาท์พุทจะต้องมีขอบเขตของเครื่องบิน เช่น:
- 21012 + + ┌─────┐ 2││ 1││ 0││ 1││ 2││ -└─────┘
จะเป็นตัวอย่างของว่างเครื่องบิน ตัวเลขด้านบนและด้านข้างใช้สำหรับการอ้างอิงเท่านั้นและไม่จำเป็นต้องพิมพ์
คุณสามารถใช้อักขระใดก็ได้ในขอบเขตตราบใดที่ไม่ใช่ช่องว่าง (หรือแสดงเป็นช่องว่าง) อักขระที่คุณเลือกจะต้องวิเคราะห์ระนาบแบบเต็มหมายความว่าไม่มีช่องว่างระหว่างตัวอักษรเหล่านั้น
เครื่องบินที่ได้รับการยอมรับ ได้แก่ : ┌──┐ .... ---- + - + ││ . | | | | ││ . | | | | └──┘; .... ; ----; + - + เครื่องบินที่ไม่สามารถยอมรับได้ ได้แก่ : .... .... ++++ . . . + + . . + + . ; .... ; .... ; + +; . .
วัตถุที่จะถูกติดตามอาจเป็นตัวละครที่คุณเลือกตราบใดที่มันมีเพียง 1 ช่องว่างบนเครื่องบินและแตกต่างจากตัวละครที่มีขอบเขต
การติดตามของวัตถุที่ถูกติดตามอาจเป็นตัวละครที่คุณเลือกตราบใดที่พวกเขาใช้พื้นที่เพียง 1 ช่องบนเครื่องบินและแตกต่างจากวัตถุ
สำหรับแต่ละองค์ประกอบในวัตถุจะต้องย้ายช่องว่างไปทางและทิ้งร่องรอยไว้
หากวัตถุนั้นชนกับวัตถุมันจะถูกสะท้อนออกมา หากวัตถุยังคงมีการเคลื่อนไหวใด ๆ ที่เหลืออยู่วัตถุจะเคลื่อนที่ไปในทิศทางที่มันสะท้อนอยู่
สำหรับการอ้างอิงทิศทางเหล่านี้สะท้อนซึ่งกันและกัน:
→เมื่อพบขอบเขตบนหรือล่าง;
→เมื่อพบขอบเขตด้านข้าง
ผลลัพธ์สุดท้ายจะมีการติดตามล่าสุดที่เป็นไปได้นั่นคือถ้าวัตถุจะทิ้งร่องรอยไว้ในพื้นที่ที่มีการติดตามอยู่แล้วอักขระการติดตามที่ใหม่กว่าจะเขียนทับสิ่งที่เก่ากว่า
ตามปกติช่องโหว่มาตรฐานเป็นสิ่งต้องห้ามโดยค่าเริ่มต้น
เกณฑ์การให้คะแนน:
นี่คือความท้าทายรหัส - กอล์ฟ
ตัวอย่าง:
อินพุต: , ,
ทำงานออกมา:
0 ┌─────┐ ││ ││ 0│○│ ││ ││ └─────┘
0 ┌─────┐ │○│ │ \ │ 0│ \ │ ││ ││ └─────┘
0 ┌─────┐ │∧│ │ | \ │ 0│○ \ │ ││ ││ └─────┘
ซึ่งจะเป็นผลลัพธ์
0 ┌─────┐ │∧│ │ | \ │ 0│└○ \ │ ││ ││ └─────┘
(0s เป็นเพียงสำหรับการอ้างอิงและพวกเขาไม่จำเป็นต้องอยู่ในผลลัพธ์สุดท้าย)
อินพุต: ,
0 ┌─────────┐ ││ ││ ││ │∧│ 0│ / | │ │○ / | │ │⟨ / │ │ \ / │ │∨│ └─────────┘
0 ┌─────────┐ │○│ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │∧ / / │ │⟨ \ / / │ │ \ \ / │ │∨∨│ └─────────┘
กรณีทดสอบ:
อินพุต: , ,
เอาท์พุท:
0 ┌─────┐ │∧│ │ | \ │ 0│└○ \ │ ││ ││ └─────┘
อินพุต: , ,
เอาท์พุท:
0 ┌─────────┐ │○│ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │∧ / / │ │⟨ \ / / │ │ \ \ / │ │∨∨│ └─────────┘
อินพุต: , ,
เอาท์พุท:
0 ┌───┐ │ | │ 0│-○┐│ │ | │ └───┘
อินพุต: , ,
เอาท์พุท:
0 ┌───────────┐ │∧│ │ / \ │ │┌ - / - \ \ │ │ \ | / \ \ │ │ \ | \ \ │ 0│ | / ⟩│ │ | \ / / │ │ | / ○│ │ | / \ │ │∨ \ │ │ \ │ └───────────┘
'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
จำนวนเต็มแบบ 0 (หรือ 1 ดัชนี) แทนได้หรือไม่? ดังนั้น[('NW',2),('S',2),('E',1)]
กลายเป็น[[7,2],[4,2],[2,1]]
ตัวอย่าง