यदि आपके पास सिर्फ पिक्सल का ग्रिड है - एक "बड़ा क्षेत्र" जिस पर पॅकमैन और भूत स्वतंत्र रूप से स्थानांतरित हो सकते हैं - तो सबसे छोटा रास्ता आसान है - भूत और पॅकमैन के बीच एक सीधी रेखा।
लेकिन "सबसे छोटा रास्ता" हमेशा का अर्थ है कि हम ग्राफ-सिद्धांत समस्या को हल करने का प्रयास कर रहे हैं। (मैं ग्राफ का ज्ञान मान रहा हूं, कुछ ग्राफ सिद्धांत, adj। Matrices, आदि!)
उपर्युक्त मामले में, प्रत्येक पिक्सेल को ग्राफ़ पर नोड होने पर विचार करें। प्रत्येक नोड अपने पड़ोसियों से किनारे से जुड़ा होता है, और प्रत्येक किनारे के बराबर "वजन" होता है ("उपरोक्त" पर नोड पर जाने से "नीचे" नोड पर जाने से धीमा नहीं होता है)।
तो आप इस है: ("*" = नोड "-, /, \, |" = धार)
*-*-*
|\|/|
*-*-* ... (etc)
|/|\|
*-*-*
हैं Pacman केंद्र में है, यह किसी भी अन्य नोड के लिए स्थानांतरित कर सकते हैं बहुत आसानी से।
कुछ अधिक वास्तविकता के करीब यह हो सकता है:
*-*-*
| | |
*-*-* ... (etc)
| | |
*-*-*
अब, pacman तिरछे स्थानांतरित नहीं कर सकते।केंद्र से नीचे-दाएं जाने के लिए एक के बजाय 2 "होप्स" की आवश्यकता होती है।
प्रगति जारी रखने के लिए:
*-*-*-*
| | | |
| | | |
| | | |
*-*-*-*
| | | |
*-*-*-*
अब, शीर्ष पर एक नोड के लिए बीच में एक नोड से जाने के लिए, आप 3 हॉप्स की जरूरत है। हालांकि, नीचे की ओर बढ़ने के लिए केवल 1 हॉप लेता है।
ग्राफ में किसी भी गेम-बोर्ड सेटअप का अनुवाद करना आसान होगा। प्रत्येक "छेड़छाड़" एक नोड है। दो चौराहे के बीच का रास्ता एक किनारा है, और उस पथ की लंबाई उस किनारे का भार है।
ए * दर्ज करें। ग्राफ बनाने के द्वारा (एक आसन्न मैट्रिक्स या नोड्स की सूची का उपयोग करें), आप सबसे कम पथ खोजने के लिए ए * एल्गोरिदम का उपयोग कर सकते हैं। अन्य एल्गोरिदम में डिजस्ट्रा शामिल हैं। और बहुत सारे! लेकिन सबसे पहले आपको ग्राफ के संदर्भ में अपनी समस्या को फ्रेम करने की आवश्यकता है, और उसके बाद खिलौना नोड ए (पॅकमैन) से नोड बी (भूत) तक कैसे जाएंगे।
आशा है कि मदद करता है!
Pacman उपरोक्त एल्गोरिथ्म शायद (खेल के साथ विशेष रूप से के रूप में) की तुलना में बेहतर करता है। ए *, आदि ... एक अच्छा प्रारंभिक बिंदु है ... मैंने यह नहीं कहा कि यह एक अच्छा अंत बिंदु था :-) – TofuBeer
मैंने वास्तव में लंबे समय तक पीएसी-मैन नहीं खेला है, इसलिए मैं काफी नहीं हूं याद रखें कि उन भूत कितने स्मार्ट बन गए। असल में, मुझे नहीं लगता कि मुझे कभी भी पिछले स्तर 3 या 4 मिल गया है। अरे, मैं तीसरी कक्षा में था;) – coobird
वैसे यह गति वृद्धि के कारण हो सकता है कि वे आपको लक्षित करने में सक्षम हैं ... या यह हो सकता है कि वे कुछ यादृच्छिकता जोड़ते हैं जो वे स्तरों में उच्च होने के कारण कम करते हैं। – TofuBeer