খুব সাধারণ শ্যুট-ইম-আপের কল্পনা করুন, এমন কিছু যা আমরা সবাই জানি:
আপনি প্লেয়ার (সবুজ)। আপনার চলাচল X
অক্ষের মধ্যে সীমাবদ্ধ । আমাদের শত্রু (বা শত্রু) পর্দার শীর্ষে রয়েছে, তার চলাচলও X
অক্ষের মধ্যে সীমাবদ্ধ । প্লেয়ার শত্রুতে গুলি (হলুদ) গুলি চালায়।
আমি শত্রুদের জন্য একটি এআই বাস্তবায়ন করতে চাই যা খেলোয়াড়দের বুলেটগুলি এড়িয়ে যাওয়ার ক্ষেত্রে ভাল হওয়া উচিত। আমার প্রথম ধারণাটি ছিল পর্দাটিকে আলাদা বিভাগে ভাগ করা এবং তাদের ওজন নির্ধারণ করা:
দুটি ওজন রয়েছে: "বুলেট-ওজন" (ধূসর) হ'ল বুলেট দ্বারা চাপানো বিপদ। বুলেট শত্রুর কাছাকাছি, "বুলেট-ওজন" তত বেশি ( 0..1
যেখানে 1 সর্বোচ্চ বিপদ)। বুলেটবিহীন লেনগুলির ওজন 0 থাকে The দ্বিতীয় ওজন হ'ল "দূরত্বের ওজন" (চুন-সবুজ)। প্রতিটি লেনের জন্য আমি 0.2
চলাচলের ব্যয় যুক্ত করি (এই মানটি এখন স্বেচ্ছাচারী এবং এটি টুইট করা যেতে পারে)।
তারপরে আমি কেবল ওজন (সাদা) যুক্ত করি এবং সর্বনিম্ন ওজন (লাল) দিয়ে গিরিটিতে যাই। তবে এই পদ্ধতির একটি সুস্পষ্ট ত্রুটি রয়েছে, কারণ এটি সহজেই স্থানীয় মিনিমাটিকে মিস করতে পারে কারণ সর্বোত্তম জায়গাটি কেবল দুটি আগত গুলি (সাদা তীর দ্বারা চিহ্নিত হিসাবে) এর মধ্যে হতে পারে go
তাই আমি যা খুঁজছি তা এখানে:
- বুলেট-ঝড়ের মধ্য দিয়ে কোনও উপায় খুঁজে পাওয়া উচিত, এমনকি এমন কোনও জায়গা নেই যেখানে বুলেটের হুমকি চাপানো হয় না।
- শত্রু নির্ভরযোগ্যভাবে একটি অনুকূল (বা প্রায় অনুকূল) সমাধান বাছাই করে বুলেটগুলিকে ডজ করতে পারে।
- অ্যালগরিদম বুলেট চলাচলের গতিতে ফ্যাক্টর করতে সক্ষম হওয়া উচিত (কারণ তারা বিভিন্ন গতিতে চলতে পারে)।
- বিভিন্ন স্তরের অসুবিধা প্রয়োগ করা যেতে পারে (অতি বুদ্ধিমান শত্রুদের কাছে বোবা) যাতে অ্যালগরিদমটি টুইট করার উপায়।
- অ্যালগরিদমকে বিভিন্ন গোলের অনুমতি দেওয়া উচিত, যেহেতু শত্রু কেবল গুলি থেকে বাঁচতে চায় না, সেও খেলোয়াড়কে গুলি করতে সক্ষম হবে। এর অর্থ হ'ল গুলি চালানোর সময় শত্রুরা প্লেয়ারকে গুলি করতে পারে এমন অবস্থানগুলি পছন্দ করা উচিত।
তাহলে আপনি কীভাবে এটিকে মোকাবেলা করবেন? এই ধারার অন্যান্য গেমগুলির বিপরীতে, আমি বোবা শত্রুদের পরিবর্তে কেবল কয়েকটি, তবে খুব "দক্ষ" শত্রু পেতে চাই।