संशोधित निम गेम ऐरे का एक अनुकूलन गेम है। यह गेम शुरुआती खिलाड़ी और इष्टतम चालों के आधार पर विजेता की भविष्यवाणी करता है।
गेम लॉजिक - इस गेम में, हमें एक ऐरे दिया जाता है जिसमें तत्व होते हैं। आमतौर पर दो खिलाड़ी होते हैं जो गेम खेलते हैं: खिलाड़ी1 और खिलाड़ी2। दोनों का उद्देश्य यह सुनिश्चित करना है कि उनके सभी नंबर ऐरे से हटा दिए जाएं। अब, खिलाड़ी1 को 3 से विभाज्य सभी नंबर हटाने हैं और खिलाड़ी2 को 5 से विभाज्य सभी नंबर हटाने हैं। उद्देश्य है कि वे इष्टतम रूप से सभी तत्वों को हटाएं और विजेता ढूंढें।
नमूना
Array: {1, 5, 75, 2, 65, 7, 25, 6}
Winner: Player B. A removes 75 -> B removes 5 -> A removes 6 -> B removes 65 -> A के लिए कोई चाल नहीं, B जीतता है।
कोड पूर्वावलोकन
कोड उन तत्वों की संख्या ढूंढेगा जिन्हें 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";
else
cout << "Player 2 is the Winner";
}
if (movesA + 1 > movesB)
cout << "Player 1 is the Winner";
else
cout << "Player 2 is the Winner";
return 0;
}
आउटपुट
Player 2 is the Winner