2012-01-22 17 views
5

पर नेविगेट कर सकता है मैं एक आईओएस गेम (UIView का उपयोग कर) लिख रहा हूं, जिसमें यादृच्छिक रूप से जेनरेट 2 डी शहर है। मुझे एआई पर हमला करने की आवश्यकता है, जो खिलाड़ी को खोजने के लिए एक बुद्धिमान मार्ग लेगा (भवनों के साथ टकराव किए बिना)। क्या कोई मुझे सही दिशा में इंगित कर सकता है कि यह प्राप्त करने के लिए मैं किस प्रकार के एल्गोरिदम का उपयोग करूंगा?एआई। जो एक यादृच्छिक रूप से जेनरेट 2 डी शहर

संपादित करें: मैंने ए * का उपयोग करने का निर्णय लिया है। मैं मानचित्र पर एक ग्रिड तैयार करूंगा, प्रत्येक ग्रिड चौराहे बिंदु का परीक्षण करूंगा, अगर वह बिंदु किसी भवन के अंदर है, तो मैं बिंदु को अमान्य कर दूंगा। हमलावर एआई। खिलाड़ी तब अपने वर्तमान स्थान से एक वैध ग्रिड बिंदु पर चलेगा, जो इसके लक्ष्य के करीब है (इसके स्थान के एक निश्चित त्रिज्या के भीतर)।

+0

उपकरण रिक/व्यापक के रूप में बंद करने के लिए वोटिंग। –

उत्तर

7

आप pathfinding algorithms नामक एल्गोरिदम की एक कक्षा की तलाश में हैं। आप कई दृष्टिकोण हैं जिनका उपयोग आप कर सकते हैं।

क्लासिक एल्गोरिदम यहां Dijkstra's algorithm और A* search हैं, जो किसी ऑब्जेक्ट को इष्टतम पथ के साथ एक स्थान से दूसरे स्थान पर मार्गदर्शन कर सकते हैं। ये एल्गोरिदम 2 डी दुनिया को graph के रूप में मॉडलिंग करके काम करते हैं और फिर उस ग्राफ़ में गंतव्य स्थान पर ऑब्जेक्ट के प्रारंभ स्थान से सबसे छोटा रास्ता ढूंढते हैं। इन दो एल्गोरिदम का उपयोग एआई और पथदर्शी में बड़े पैमाने पर किया जाता है, और मैं दृढ़ता से उनके बारे में अधिक पढ़ने के लिए समय का निवेश करने का सुझाव दूंगा। यदि आप चाहें तो solid tutorial on A* search ऑनलाइन उपलब्ध है।

यदि आपके पास कई अलग-अलग ऑब्जेक्ट्स हैं जिन्हें हस्तक्षेप किए बिना किसी लक्ष्य में स्थानांतरित करने की आवश्यकता है, तो आप संभावित फ़ील्ड देखना चाहते हैं, जो एकाधिक ऑब्जेक्ट्स को लक्ष्य तक पहुंचने के लिए एक सरल और लचीला रूपरेखा देते हैं। इस दृष्टिकोण का उपयोग the Berkeley "Overmind" StarCraft AI द्वारा किया गया था, और अक्सर रोबोट गति योजना में उपयोग किया जाता है। सहजता से, यह दृष्टिकोण प्रत्येक स्थान पर "संभावित" मान निर्दिष्ट करके काम करता है, फिर ऑब्जेक्ट्स को लक्ष्य तक पहुंचने तक उच्च क्षमता से कम क्षमता तक चलते रहते हैं। यह दृष्टिकोण सही होने के लिए थोड़ा सा कठिन है, लेकिन एक बार जब यह काम करता है तो यह लचीला, अनुकूलन योग्य एआई का कारण बनता है जो समझदारी से व्यवहार करता है।

आशा है कि इससे मदद मिलती है!

+0

+1, बहुत जानकारीपूर्ण – DGund

2

यह प्रश्न यहां: Pacman: how do the eyes find their way back to the monster hole? एक चलती खिलाड़ी की खोज में यादृच्छिक 2 डी ग्रिड के एआई नेविगेशन के दृष्टिकोणों का एक अच्छा सर्वेक्षण है। सामान्य सर्वसम्मति (और पैकमैन द्वारा उपयोग किया जाने वाला दृष्टिकोण) एआई में बुद्धिमान पथदर्शी एल्गोरिदम को पकाने के बारे में चिंता करने की ज़रूरत नहीं है, बल्कि खिलाड़ी के स्थान के बारे में जानकारी संग्रहीत करने के लिए मानचित्र का उपयोग करने के बजाय। यह एक आकर्षक पठन है, खासकर दूसरे और तीसरे उत्तरों (और उनके बाहरी लिंक) ammoQ और दान विंटन द्वारा।

यह लिंक यहां Pacman scent antiobject pattern एक सस्ता और प्रभावी दृष्टिकोण का वर्णन करता है।

+0

जबकि मैं मानता हूं कि यह एक अच्छा दृष्टिकोण है, अगर दुनिया यादृच्छिक रूप से जेनरेट की गई है तो आप दुनिया में कुछ भी हार्डकोड नहीं कर सकते हैं और प्रारंभिक पथदर्शी करने के लिए अधिक जटिल एल्गोरिदम का उपयोग करने की आवश्यकता होगी। यह तब भी काम नहीं करेगा जब तक खिलाड़ी लगातार आगे बढ़ता नहीं है जब तक कि आप अतिरिक्त जानकारी के * बहुत * स्टोर न करें। – templatetypedef

+0

क्षमा करें @templatebydef, मैं प्रश्नकर्ता को संबंधित प्रश्न के मौजूदा समाधान या स्वीकृत उत्तर के बजाय दूसरे और तीसरे लिंक पर संदर्भित कर रहा था - जिनमें से दोनों वास्तव में उन समस्याओं से ग्रस्त हैं जो आप इंगित करते हैं। मैंने अपने प्रश्न को दिलचस्प दृष्टिकोण के लिंक के साथ अपडेट किया है जिसे मैं ओपी देखना चाहता हूं। –

संबंधित मुद्दे