Heim > Backend-Entwicklung > C++ > Ein in C modifiziertes Nim-Spiel?

Ein in C modifiziertes Nim-Spiel?

PHPz
Freigeben: 2023-09-01 14:57:07
nach vorne
751 Leute haben es durchsucht

Ein in C modifiziertes Nim-Spiel?

Das modifizierte Nim-Spiel ist ein Optimierungsspiel für Arrays. Dieses Spiel sagt den Gewinner basierend auf dem Startspieler und den optimalen Zügen voraus.

Spiellogik − In diesem Spiel erhalten wir ein Array{}, das Elemente enthält. Es gibt im Allgemeinen zwei Spieler, die das Spiel spielen, nämlich Spieler1 und Spieler2. Das Ziel beider besteht darin, sicherzustellen, dass alle ihre Zahlen aus dem Array entfernt werden. Jetzt muss Spieler1 alle Zahlen entfernen, die durch 3 teilbar sind, und Spieler2 muss alle Zahlen entfernen, die durch 5 teilbar sind. Ziel ist es, sicherzustellen, dass alle Elemente optimal entfernt werden, und in diesem Fall den Gewinner zu finden.

Beispiel

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.
Nach dem Login kopieren

Codevorschau

Der Code ermittelt die Anzahl der Elemente, die A entfernen kann, die Anzahl der Elemente, die B entfernen kann, und die Anzahl der Elemente, die beide entfernen können. Basierend auf der Anzahl der Elemente, die beide entfernen können, wird die Lösung gefunden. Da A die ersten Elemente entfernt, kann es gewinnen, auch wenn er ein Element mehr als B entfernen muss. Im Normalfall gewinnt der Spieler mit der maximalen Anzahl an zu entfernenden Elementen输出

#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;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEin in C modifiziertes Nim-Spiel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage