चुनौती
ग्रिड आकार, बाधाओं की स्थिति, खिलाड़ी की स्थिति और लक्ष्य की स्थिति को देखते हुए आपका कार्य खिलाड़ी को लक्ष्य तक पहुंचने और उसी समय (यदि आवश्यक हो) बाधाओं से बचने के लिए एक रास्ता खोजना है।
इनपुट
- एन : ग्रिड आकार
N x N - P : खिलाड़ी की स्थिति
[playerposx, playerposy] - T : लक्ष्य की स्थिति
[targetposx, targetposy] - O : बाधाओं की स्थिति
[[x1, y1], [x2, y2],...,[xn, yn]]
उत्पादन
पथ : एक पथ खिलाड़ी लक्ष्य तक पहुंचने के लिए उपयोग कर सकता है[[x1, y1], [x2, y2],...,[xn, yn]]
नियम
- बिंदु
[0,0]ग्रिड के ऊपरी-बाएँ कोने पर है। - खिलाड़ी की स्थिति हमेशा ग्रिड के बाईं ओर होगी।
- लक्ष्य की स्थिति हमेशा ग्रिड के दाईं ओर होगी।
- ग्रिड में हमेशा कम से कम एक बाधा होगी।
- आप मान सकते हैं कि कोई भी बाधा खिलाड़ी या लक्ष्य की स्थिति को ओवरलैप नहीं करती है।
- जरूरी नहीं कि आपको मिनिमम पाथ मिल जाए।
- खिलाड़ी केवल बाएं, दाएं, ऊपर और नीचे तिरछे नहीं चल सकता है।
- आप किसी भी सुविधाजनक तरीके से इनपुट ले सकते हैं।
- आप मान सकते हैं कि खिलाड़ी के निशाने पर आने का रास्ता हमेशा मौजूद रहेगा।
- जाहिर है, प्रत्येक इनपुट के लिए कई वैध रास्ते मौजूद हैं, एक को चुनें।
- मान लीजिए
N > 2कि ग्रिड कम से कम होगा3 x 3।
उदाहरण
इनपुट: 9, [6, 0], [3, 8], [[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]]
संभावित आउटपुट:[[6, 0], [6, 1], [6, 2], [6, 3], [5, 3], [5, 4], [5, 5], [5, 6], [5, 7], [5, 8], [4, 8], [3, 8]]
इनपुट: 6, [1, 0], [3, 5], [[1, 2], [2, 5], [5, 1]]
संभावित आउटपुट:[[1, 0], [1, 1], [2, 1], [2, 2], [2, 3], [2, 4], [3, 4], [3, 5]]
ध्यान दें
नोटिस जो Xपंक्तियों के लिए और Yबछड़ों के लिए है। एक छवि में निर्देशांक के साथ उन्हें भ्रमित न करें।
संपादित करें
जैसा कि @digEmAll ने बताया, नियमों के कारण #2और #3, playerY = 0और targetY = N-1। इसलिए, यदि आप चाहते हैं कि आप केवल इनपुट के रूप में ले सकते हैं playerXऔर targetX(यदि वह आपके कोड को छोटा बनाता है)।
