Computer >> Máy Tính >  >> Lập trình >> C ++

Dự đoán người chiến thắng trong Trò chơi tiền xu bằng C ++

Trong trò chơi này, có hai người chơi X và Y. nhiệm vụ của chúng ta là dự đoán xem ai sẽ thắng trò chơi nếu cả hai đều chơi tối ưu và X bắt đầu trò chơi.

Trò chơi

Trong trò chơi đồng xu, có hai cọc có N và M số đồng xu. Một trong những người chơi chọn bất kỳ một trong các cọc cho trò chơi. Sau đó, nhiệm vụ là chia các cọc thành hai nửa cho đến khi bất kỳ người chơi nào không thể chia thêm các cọc.

Hãy lấy một ví dụ để hiểu vấn đề,

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

Giải thích - X bắt đầu trò chơi và chọn M cọc (cả hai đều giống nhau), và chia cọc thành hai. Bây giờ mỗi sẽ chỉ chứa một đồng xu, vì vậy Y sẽ không còn nước đi. Điều này sẽ làm cho X giành chiến thắng.

Để giải quyết vấn đề này, chúng ta cần xem khả năng người chơi X thắng. Trường hợp người chơi X thắng là khi bất kỳ cọc nào sẽ có số đồng chẵn. Nếu không, Y sẽ là người chiến thắng.

Chương trình thể hiện việc triển khai logic của chúng tôi

Ví dụ

#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;
}

Đầu ra

Game Starts!
Player X is the Winner