>  기사  >  백엔드 개발  >  C로 수정된 Nim 게임?

C로 수정된 Nim 게임?

PHPz
PHPz앞으로
2023-09-01 14:57:07707검색

C로 수정된 Nim 게임?

님의 수정된 게임은 배열 최적화 게임입니다. 이 게임은 시작 플레이어와 최적의 움직임을 기반으로 승자를 예측합니다.

Game Logic − 이 게임에서는 요소가 포함된 배열{}이 제공됩니다. 일반적으로 게임을 플레이하는 플레이어는 플레이어1과 플레이어2입니다. 두 가지 모두의 목표는 모든 숫자가 배열에서 제거되는지 확인하는 것입니다. 이제 플레이어1은 3으로 나누어지는 숫자를 모두 제거해야 하고 플레이어2는 5로 나누어지는 숫자를 모두 제거해야 합니다. 목표는 모든 요소를 ​​최적으로 제거하고 이 경우 승자를 찾는 것입니다.

Sample

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보다 하나 더 많은 요소를 제거하더라도 승리할 수 있습니다. 일반적으로 제거할 요소의 최대 개수를 가진 플레이어가 승리합니다.

NIM 게임에 대한 솔루션을 찾는 프로그램

#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

위 내용은 C로 수정된 Nim 게임?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제