एक बॉम्बरमैन एआई बुद्धिमान बम प्लेसमेंट दे रहा है


13

मैं Bomberman के लिए एक AI एल्गोरिथ्म को लागू करने की कोशिश कर रहा हूं। वर्तमान में मेरे पास एक काम है, लेकिन बहुत स्मार्ट अल्पविकसित कार्यान्वयन नहीं है (वर्तमान एआई बम रखने में अति उत्साही है)।

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

बॉम्बरमैन एआई को लागू करने के लिए आपके पास क्या सामान्य सुझाव हैं? क्या बॉट को अधिक रक्षात्मक या आक्रामक बनाने के लिए मौलिक रूप से अलग-अलग दृष्टिकोण हैं?


संपादित करें: वर्तमान एल्गोरिथ्म

मेरा वर्तमान एल्गोरिथ्म कुछ इस तरह है (छद्म कोड):

1) एक बम रखने की कोशिश करें और फिर एक सेल ढूंढें जो सभी बमों से सुरक्षित है, जिसमें आप अभी भी शामिल हैं। उस सेल को खोजने के लिए, चारों दिशाओं में पुनरावृति करें; यदि आप किसी भी सुरक्षित डाइवर्जेंट सेल को ढूंढ सकते हैं और उसे समय पर पहुंचा सकते हैं (जैसे कि यदि दिशा ऊपर या नीचे है, तो इस सेल को देखें जो इस पथ के बाईं या दाईं ओर पाई जाती है), तो बम रखना और ले जाना सुरक्षित है उस दिशा में।

2) यदि आप अलग-अलग कक्षों को सुरक्षित और सुरक्षित नहीं कर सकते हैं, तो बम रखने और फिर से देखने की कोशिश न करें। इस बार आपको केवल एक ही दिशा में एक सुरक्षित सेल की तलाश करनी होगी (आपको इससे अलग नहीं होना है)।

3) यदि आप अभी भी एक सुरक्षित सेल नहीं ढूंढ पा रहे हैं, तो कुछ भी न करें।

for $(direction) in (up, down, left, right):
    place bomb at current location
    if (can find and reach divergent safe cell in current $(direction)):
        bomb = true
        move = $(direction)
        return

for $(direction) in (up, down, left, right):
    do not place bomb at current location
    if (any safe cell in the current $(direction)):
        bomb = false
        move = $(direction)
        return

else:
    bomb = false
    move = stay_put

यह एल्गोरिथ्म बॉट को बहुत ट्रिगर-खुश करता है (यह बहुत बार बम लगाएगा)। यह खुद को नहीं मारता है, लेकिन इसे मृतकों में जाने से खुद को कमजोर बनाने की आदत है, जहां इसे अन्य खिलाड़ियों द्वारा अवरुद्ध और मार दिया जा सकता है।

क्या आपके पास कोई सुझाव है कि मैं इस एल्गोरिथ्म को कैसे बेहतर बना सकता हूं? या शायद मुझे कुछ पूरी तरह से अलग करने की कोशिश करनी चाहिए?

इस एल्गोरिथ्म के साथ समस्याओं में से एक यह है कि यह बॉट को बहुत कम (अक्सर सिर्फ एक) सुरक्षित कोशिकाओं के साथ छोड़ देता है, जिस पर वह खड़ा हो सकता है। इसका कारण यह है कि बॉट इसके पीछे बमों का निशान छोड़ देता है, जब तक कि यह खुद को नहीं मारता।

हालाँकि, कुछ स्थानों के पीछे बमों का निशान छोड़ना जहां आप छिप सकते हैं। यदि कोई अन्य खिलाड़ी या बॉट आपके आसपास कहीं बम रखने का फैसला करता है, तो अक्सर ऐसा होता है कि आपके पास छिपाने के लिए कोई जगह नहीं होती और आप मर जाते हैं।

मुझे यह तय करने के लिए एक बेहतर तरीका चाहिए कि बम कब लगाएं।


यह कुछ ऐसा सोचना मुश्किल है जो नीले रंग से 100% काम करता है। लेकिन हो सकता है कि यदि आप वर्तमान में हमारे पास मौजूद एल्गोरिथ्म जोड़ते हैं, तो हम धीरे-धीरे इसे बेहतर बनाने में मदद कर सकते हैं। आप शायद पहले ऐसे शौक़ीन नहीं हैं जो बॉम्बरमैन एआई को लागू करने की कोशिश कर रहे हैं, और मैंने एक यादृच्छिक Google खोज के साथ काफी कुछ बॉम्बरमैन एआई प्रतियोगिताओं को पाया है जो आपके लिए जानकारी के अमूल्य स्रोत साबित हो सकते हैं।
रॉय टी।

मुझे लगता है कि आप दो चीजों में बॉम्बरमैन एआई को सामान्यीकृत कर सकते हैं: 1) अन्य खिलाड़ियों के बमों से खुद को विस्फोट से बचाने की कोशिश कर रहे हैं 2) गेम बोर्ड पर बम रखकर दूसरों को मरवाने की कोशिश करते हैं (जबकि नियम 1 को ध्यान में रखते हुए): विस्फोट होने से बचने के लिए / अपने ही बम से फंसे)।
टाइगरो

यह शायद बेहतर होगा यदि आप अपने वर्तमान कार्यान्वयन का कम से कम एक उच्च स्तरीय अवलोकन (यह बहुत कोड है) मानते हुए पोस्ट किया है और हम शायद बम रखने में उनके साथ आपकी समस्या को हल करने में आपकी मदद कर सकते हैं।
तेतरीद

@ टेट्राद मैं एक नया एल्गोरिदम लागू करने की प्रक्रिया में हूं। मैं देखता हूँ कि यदि आवश्यक हो तो एक एल्गोरिथ्म यहाँ कैसे जाता है और पोस्ट करता है।
पॉल मंटा

हालांकि यह एक वास्तविक टिप नहीं है, लेकिन आप क्लैनबॉम्बर कोड पर एक नज़र डाल सकते हैं । यह बॉम्बरमैन के समान कई मायनों में एक खेल है।
अली

जवाबों:


4

आप जिस समस्या का सामना कर रहे हैं वह यह है कि आपका एआई कभी भी एक बुद्धिमान निर्णय लेने के लिए नहीं रुकता है कि उसे अपना अगला बम कहां रखना चाहिए, जो उसे बम छोड़ने पर छोड़ देता है जब भी वह कर सकता है और फिर काम कर सकता है "बकवास, बकवास, अब मैं क्या करूँ!" ? "

सोचने का ठहराव

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

एक ही चलते-फिरते लक्ष्य व्यवहार का उपयोग तब किया जा सकता है जब वह यह सोचता है कि उसके अगले बम को कहां रखा जाए

जब आपका एआई एक बम रख सकता है, तो बस तुरंत ऐसा करने के बजाय, इसे कुछ मानदंडों के आधार पर उपलब्ध बम प्लेसमेंट स्पॉट से चुनने के लिए संक्षिप्त रूप से खोज एल्गोरिथ्म का उपयोग करना चाहिए :

  • पास है? (ताकि यह हर बार जब यह बम रखना चाहता है, तो नक्शे के विपरीत कोने में नहीं चलता है)
  • क्या कोई जगह है जिसे मैं विस्फोट से छिपा सकता हूं - और क्या बम फटने से पहले मैं वहां पहुंच सकता हूं?
  • क्या विस्फोट टाइलों को उड़ा देगा और मुझे पावरअप देगा?
  • क्या यह संभावित रूप से खिलाड़ी पर हमला करेगा? (एक आसान एआई शुरुआती गेम में इससे बच सकता है, एक आक्रामक एआई इसका पीछा करेगा - जबकि पावरअप के बारे में नहीं भूलना चाहिए)

जब यह निर्णय किया गया है, तो एआई ने एक बम प्लेसमेंट स्थान, और अपने विस्फोट से छुपाने के लिए एक स्थान चुना है। यह अब मौके पर चल सकता है, अपना बम रख सकता है, फिर अपने छिपने के स्थान पर चल सकता है। एक बार जब यह अपने छिपने की जगह पर पहुँच जाता है, तो यह बम रखने के स्थान और (यदि इसके पास कई बम हों) को ढूंढना चाहता है, बशर्ते कि यह उस बम के रास्ते से बाहर रहने के लिए ध्यान में रखे जो बचने के लिए यहाँ से चला था।

चलने पर, और एक सुरक्षित रास्ता खोजने के लिए

आप अपने AI को एक ही वॉक-टू-पॉइंट विधि के लिए विकसित कर सकते हैं और हर बार जब आप इसे कहीं चलना चाहते हैं तो इसका उपयोग करें। यह विधि अपने पथ को खोजने के लिए ए * खोज एल्गोरिदम का उपयोग कर सकती है।

एआई को सुरक्षित रखने के लिए, आप हर बार एक नया बम रखे जाने के बाद इसे अपना रास्ता बनाना चाहते हैं। विस्फोटों से बचने के लिए, यह बम फटने के समय की जांच कर सकता है, और संभावित विस्फोट टाइल पर विचार करने के लिए सुरक्षित चल सकता है अगर बम उस टाइल से गुजरते समय विस्फोट नहीं करेगा - और यदि यह सुरक्षित नहीं है, तो इसे एक अगम्य टाइल के रूप में मानें ।

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

साइड नोट: आप बेतरतीब ढंग से स्पॉटिंग पिकिंग स्पॉट्स को बेतरतीब ढंग से उठाकर चलने के लिए, या हमेशा एक नए बम प्लेसमेंट स्पॉट को ध्यान में रख कर चलने के बजाय अपने बेतरतीब ढंग से चलने के लिए एक आसन्न टाइल उठा सकते हैं। इस तरह यह एक ही जगह पर आगे-पीछे नहीं भटकता, जैसे कि यह अपना दिमाग नहीं बना सकता।


मैं खेल के बारे में कुछ प्रासंगिक विवरण देना भूल गया। यह बॉम्बरमैन का सरलीकृत संस्करण है: कोई शक्ति-अप नहीं, खिलाड़ी हमेशा असीमित बम रख सकते हैं, और बमों में हमेशा अधिकतम सीमा होती है (नक्शे के एक छोर से दूसरे तक)। अंक प्रणाली भी अलग है ... [cont'd]
पॉल मंटा

[cont।] आपको बम रखने के लिए 1 अंक मिलता है, लेकिन एक दीवार को नष्ट करने के लिए 0 अंक। आपको मारने के लिए 30 अंक, सहायता के लिए 15 और आत्महत्या के लिए -20 अंक भी मिलते हैं। [cont'd]
पॉल मेन्ता

[cont।] इस बात को ध्यान में रखते हुए, AI को एक बम को जितनी बार संभव हो सके रखने की कोशिश करनी चाहिए (क्योंकि बम रखना बम देता है), लेकिन बम कहाँ रखा गया है, इसके बारे में विशेष रूप से सावधान रहने की आवश्यकता नहीं है। यह हमेशा जाने के लिए एक सुरक्षित जगह होने के बारे में सावधान रहना होगा। [cont'd]
पॉल मेंटा

[cont।] क्या आपको लगता है कि जब कोई दिशा चुनते हैं, तो यह मेरे लिए पर्याप्त होता है कि मैं एक सुरक्षित क्षेत्र की ओर जाता हूं । एक सुरक्षित सेल की तलाश करने के बजाय, मैं सबसे बड़े सुरक्षित क्षेत्र की तलाश में रहूंगा, इसलिए मैं केवल अपने ही नहीं, अन्य खिलाड़ियों द्वारा रखे गए बमों से भी छिपा सकता हूं। इसके अलावा, क्या यह एक अच्छा विचार होगा कि वे दिशाएँ देखें जो मुझे अन्य खिलाड़ियों में से एक के करीब लाएँ?
पॉल मंटा

3
खैर फिर हम बॉम्बरमैन और उसके एआई के बारे में बात नहीं कर रहे हैं ! हम बम के साथ कुछ गेम के बारे में हैं जो सतही रूप से बॉम्बरमैन से मिलता जुलता है, लेकिन हुड के नीचे पूरी तरह से अलग है और आपको एक ट्रिगर हैप्पी ल्यूनेटिक बनने के लिए प्रोत्साहित करता है , और मुझे उस गेम से निपटने का अनुभव बहुत कम है।
डोपेलग्रेनेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.