यह एक उदाहरण है जो मैं कोड के माध्यम से करना चाहता हूं। मुझे पता है कि आप हरे रंग के नोड से लाल नोड तक आसानी से प्राप्त करने के लिए कूद बिंदु खोज का उपयोग कर सकते हैं, या यहां तक कि ए * भी नहीं। लेकिन आप यह कैसे माल के साथ गणना करते हैं।
छवि में, आप देख सकते हैं कि नीले रास्ते को लेते समय हरे नोड से लाल नोड तक पहुंचने में केवल 8 चालें चलती हैं। नीला रास्ता तुरंत आपकी स्थिति को एक बैंगनी नोड से अगले तक ले जाता है। 2 चालों की लागत के बीच का स्थान दो ताना क्षेत्रों के बीच का एक बिंदु है जिसे पाने के लिए आपको चलना चाहिए।
यह नीला रास्ता लेने के लिए स्पष्ट रूप से तेज़ है, क्योंकि आपको केवल पीले रास्ते के रूप में आधे (लगभग) स्थानांतरित करने की आवश्यकता है, लेकिन मैं इस कार्यक्रम को कैसे करूं?
इस समस्या को हल करने के उद्देश्य से, मान लें कि आप जिस ग्राफ का उपयोग करने में सक्षम हैं उसके चारों ओर कई बैंगनी "ताना" हैं, और हम जानते हैं कि वास्तव में प्रत्येक बैंगनी बिंदु कहाँ पर ताना जाएगा, और वे ग्राफ़ पर कहाँ हैं।
कुछ बैंगनी युद्ध द्वि-दिशात्मक होते हैं, और कुछ अर्थ नहीं होते हैं, कभी-कभी, आप केवल एक तरफ से एक ताना में प्रवेश कर सकते हैं, लेकिन युद्ध के बाद वापस नहीं जाते हैं।
मैंने समाधान के बारे में सोचा है, और केवल यह निष्कर्ष निकाला है कि मैं प्रत्येक ताना बिंदु पर दूरी की जांच करके समस्या की गणना करने में सक्षम हो जाएगा (शून्य-दिशात्मक अंक घटा), और उन बिंदुओं के बीच अंतर, और उनके करीब बिंदु ।
कार्यक्रम को किसी तरह से यह पता लगाना होगा कि पहली छलांग से चलने के बजाय दूसरा ताना लेना अधिक फायदेमंद है। इसलिए, 6 स्थानों को हिलाने के बजाय, फिर युद्ध करते हुए, फिर शेष 8 चरणों को पैर से हिलाते हुए (जो कि युद्ध का उपयोग न करने की तुलना में भी तेज है), यह 6 चाल लेगा, फिर दोनों दूसरे युद्ध में चले जाएंगे।
संपादित करें: मुझे एहसास हुआ कि नीले रंग का पथ वास्तव में 8 के बजाय 12 चाल लेगा, लेकिन सवाल एक ही है।