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

C++のコインゲームで勝者を予測する


このゲームには、XとYの2人のプレーヤーがいます。私たちのタスクは、両方が最適にプレイし、Xがゲームを開始した場合に誰がゲームに勝つかを予測することです。

ゲーム

コインゲームでは、コインの数がNとMの2つの山があります。プレイヤーの1人がゲームの山のいずれかを選択します。次に、1人のプレーヤーが山をそれ以上分割できなくなるまで、山を2つに分割することがタスクです。

問題を理解するために例を見てみましょう

Input: M = 2 , N = 2
Output:X

説明 -Xはゲームを開始し、Mパイル(両方とも同じ)を選択し、パイルを2つに分割します。これで、それぞれにコインが1つだけ含まれるようになるため、Yは移動せずに残されます。これでXが勝ちます。

この問題を解決するには、プレーヤーXが勝つ可能性を確認する必要があります。プレイヤーXが勝つ場合は、いずれかの山に偶数のコインがある場合です。それ以外の場合は、Yが勝者になります。

ロジックの実装を示すプログラム

#include <iostream>
using namespace std;
int isXWinner(int M, int N) {
   if (M % 2 == 0 || N % 2 == 0)
   return 1;
   return 0;
}
int main() {
   int M = 1, N = 2;
   cout<<"Game Starts!\n";
   if(isXWinner(M,N))
      cout<<"Player X is the Winner";
   else
      cout<<"Player Y is the Winner";
   return 0;
}

出力

Game Starts!
Player X is the Winner

  1. C++の迷路

    空のスペースと壁のある迷路の中にボールがあるとします。これで、ボールは上、下、左、右などの任意の方向に転がることで空のパスを通過できますが、壁にぶつかるまで転がりが止まりません。ボールが止まると、次の方向を選択できます。 ボールの位置、目的地、迷路を開始し、ボールが目的地に止まるかどうかを確認する必要があります。迷路は1つの2D配列で表されます。ここで、1は壁を示し、0は空きスペースを示します。迷路の境界はすべて壁です。開始座標と宛先座標は、行と列のインデックスで表されます。 したがって、入力が2D配列で表される迷路のようなものである場合 0 0 1 0 0

  2. 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のサイズ 初期