নিমের সংশোধিত গেম অ্যারের একটি অপ্টিমাইজেশন গেম। এই গেমটি প্রারম্ভিক খেলোয়াড় এবং সর্বোত্তম চালের উপর ভিত্তি করে বিজয়ীর ভবিষ্যদ্বাণী করে।
গেম লজিক - এই গেমটিতে, আমাদেরকে একটি অ্যারে দেওয়া হয়েছে{}, যেটিতে উপাদান রয়েছে। সাধারণত দুইজন প্লেয়ার থাকে যারা গেমটি খেলে যেমন প্লেয়ার1 এবং প্লেয়ার2। উভয়ের লক্ষ্য হল নিশ্চিত করা যে তাদের সমস্ত সংখ্যা অ্যারে থেকে মুছে ফেলা হয়েছে। এখন, প্লেয়ার 1 কে 3 দ্বারা বিভাজ্য সমস্ত সংখ্যা মুছে ফেলতে হবে এবং প্লেয়ার 2 কে 5 দ্বারা বিভাজ্য সমস্ত সংখ্যা মুছে ফেলতে হবে৷ লক্ষ্য হল নিশ্চিত করা যে তারা সমস্ত উপাদানগুলিকে সর্বোত্তমভাবে সরিয়ে দেয় এবং এই ক্ষেত্রে বিজয়ী খুঁজে পায়৷
নমুনা
Array : {1,5, 75,2,65,7,25,6} Winner : playerB. A removes 75 -> B removes 5 -> A removes 6 -> B removes 65 -> No moves for A, B wins.
কোড প্রিভিউ
কোডটি A অপসারণ করতে পারে এমন উপাদানের সংখ্যা, B অপসারণ করতে পারে এমন উপাদানের সংখ্যা এবং তারা উভয়ই অপসারণ করতে পারে এমন উপাদানগুলির সংখ্যা খুঁজে পাবে। উপাদানের সংখ্যার উপর ভিত্তি করে তারা উভয়ই অপসারণ করতে পারে সমাধান পাওয়া যায়। A যেহেতু প্রথম উপাদানগুলিকে সরিয়ে দেয় তবে এটি জিততে পারে এমনকি যদি তাকে B এর থেকে একটি উপাদান বেশি সরাতে হয়। স্বাভাবিক ক্ষেত্রে, সর্বোচ্চ সংখ্যক উপাদানগুলি সরিয়ে ফেলতে থাকা খেলোয়াড়ের জয় হয়।
নিম খেলার সমাধান খোঁজার কর্মসূচি
#include <bits/stdc++.h> using namespace std; int main() { int arr[] = {1,5, 75,2,65,7,25,6}; int n = sizeof(arr) / sizeof(arr[0]); int movesA = 0, movesB = 0, movesBoth = 0; for (int i = 0; i < n; i++) { if (arr[i] % 3 == 0 && arr[i] % 5 == 0) movesBoth++; else if (arr[i] % 3 == 0) movesA++; else if (arr[i] % 5 == 0) movesB++; } if (movesBoth == 0) { if (movesA > movesB) cout<<"Player 1 is the Winner"; cout<<"Player 2 is the Winner"; } if (movesA + 1 > movesB) cout<<"Player 1 is the Winner"; cout<<"Player 2 is the Winner"; ; return 0; }
আউটপুট
Player 2 is the Winner