Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cでのニムの修正されたゲーム?


ニムの修正ゲームは、配列の最適化ゲームです。このゲームは、開始プレイヤーと最適な動きに基づいて勝者を予測します。

ゲームロジック- このゲームでは、要素を含む配列{}が与えられます。通常、player1とplayer2という名前でゲームをプレイする2人のプレーヤーがいます。両方の目的は、それらのすべての番号が配列から削除されていることを確認することです。ここで、player1は3で割り切れるすべての数字を削除し、player2は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よりも1つ多く要素を削除する必要がある場合でも、勝つことができます。通常、削除する要素の数が最大のプレーヤーが勝ちます。

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

  1. C++でゲームIVをジャンプする

    arrという整数の配列があるとします。最初はインデックス0にいます。1つのステップで、インデックスiからi + xにジャンプできます。ここで、i +x =0。jここで:arr[i]とarr[j]は同じであり、iとjは同じではありません。ここで、nは配列のサイズです。配列の最後のインデックスに到達するための最小ステップ数を見つける必要があります。 したがって、入力が次のような場合、 その場合、出力は3になります。インデックス0から4、3から9への3つのジャンプが必要です。 これを解決するには、次の手順に従います- 1つのマップを定義するm n:=arrのサイズ 初期

  2. Xbox ゲームの音声ウィンドウを削除する方法?

    Windows 10 には、ゲーマー向けのアプリと機能がプリインストールされています。 Xbox Game Bar もその 1 つですが、一部のゲーマーにとっては不快な場合があります。 Xbox ゲームの音声ウィンドウを削除してより適切に制御する方法を学びます。 Windows 10 は、初めてサインインするときに、いくつかのユニバーサル (UXP) アプリケーションをインストールします。ただし、これらのアプリケーションのすべてがキーボードとマウスでの使用に適しているわけではありません。そのような機能の 1 つは、Xbox ゲームの音声ウィンドウ、またはゲームをプレイするときに表示されるゲー