मैं 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
यह एल्गोरिथ्म बॉट को बहुत ट्रिगर-खुश करता है (यह बहुत बार बम लगाएगा)। यह खुद को नहीं मारता है, लेकिन इसे मृतकों में जाने से खुद को कमजोर बनाने की आदत है, जहां इसे अन्य खिलाड़ियों द्वारा अवरुद्ध और मार दिया जा सकता है।
क्या आपके पास कोई सुझाव है कि मैं इस एल्गोरिथ्म को कैसे बेहतर बना सकता हूं? या शायद मुझे कुछ पूरी तरह से अलग करने की कोशिश करनी चाहिए?
इस एल्गोरिथ्म के साथ समस्याओं में से एक यह है कि यह बॉट को बहुत कम (अक्सर सिर्फ एक) सुरक्षित कोशिकाओं के साथ छोड़ देता है, जिस पर वह खड़ा हो सकता है। इसका कारण यह है कि बॉट इसके पीछे बमों का निशान छोड़ देता है, जब तक कि यह खुद को नहीं मारता।
हालाँकि, कुछ स्थानों के पीछे बमों का निशान छोड़ना जहां आप छिप सकते हैं। यदि कोई अन्य खिलाड़ी या बॉट आपके आसपास कहीं बम रखने का फैसला करता है, तो अक्सर ऐसा होता है कि आपके पास छिपाने के लिए कोई जगह नहीं होती और आप मर जाते हैं।
मुझे यह तय करने के लिए एक बेहतर तरीका चाहिए कि बम कब लगाएं।