কম্পিউটার

C++ এ একটি ম্যাট্রিক্সে নিরাপদ কোষ খুঁজুন


ধরুন আমাদের একটি ম্যাট্রিক্স ম্যাট আছে[][]। এতে Z এবং P অক্ষর রয়েছে। Z হল জম্বি এবং P হল উদ্ভিদ। এবং আরেকটি চরিত্র * একটি খালি জমি। একটি জম্বি উদ্ভিদ আক্রমণ করতে পারে, যখন উদ্ভিদ জম্বি সংলগ্ন হয়। আমাদের উদ্ভিদের সংখ্যা খুঁজে বের করতে হবে, যেগুলো জম্বি থেকে নিরাপদ। ধরুন ম্যাট্রিক্স নিচের মত −

C++ এ একটি ম্যাট্রিক্সে নিরাপদ কোষ খুঁজুন

তাই শুধুমাত্র দুটি গাছপালা নিরাপদ।

আমরা উপাদান দ্বারা ম্যাট্রিক্স উপাদান অতিক্রম করব, তারপর যখন বর্তমান উপাদানটি একটি উদ্ভিদ, তখন পরীক্ষা করুন যে উদ্ভিদটি জম্বি দ্বারা বেষ্টিত কিনা, যদি না হয় তবে গণনা বাড়ান।

উদাহরণ

#include<iostream>
using namespace std;
bool isZombie(int i, int j, int r, int c, string mat[]) {
   if (i < 0 || j < 0 || i >= r || j >= c || mat[i][j] != 'Z')
      return false;
      return true;
}
int countSafeCells(string matrix[], int row, int col) {
   int i, j, count = 0;
   for (i = 0; i < row; i++) {
      for (j = 0; j < col; j++) {
         if (matrix[i][j] == 'P') {
            if (!isZombie(i - 1, j - 1, row, col, matrix) && !isZombie(i - 1, j, row, col, matrix)
               && !isZombie(i - 1, j + 1, row, col, matrix) && !isZombie(i, j - 1, row, col, matrix)
               && !isZombie(i, j, row, col, matrix) && !isZombie(i, j + 1, row, col, matrix)
               && !isZombie(i + 1, j - 1, row, col, matrix) && !isZombie(i + 1, j, row, col, matrix)
               && !isZombie(i + 1, j + 1, row, col, matrix)) {
               count++;
            }
         }
      }
   }
   return count;
}
int main() {
   string mat[] = { "**P*", "Z***", "*P**", "***P" };
   int row = sizeof(mat) / sizeof(mat[0]);
   int col = mat[0].length();
   cout << "Number of safe cells: " << countSafeCells(mat, row, col);
}

আউটপুট

Number of safe cells: 2

  1. C++ এ প্রতিটি গাছের সারিতে সবচেয়ে বড় মান খুঁজুন

  2. একটি গ্রাফ ম্যাট্রিক্সের বিপরীত অনুসন্ধান করার জন্য C++ প্রোগ্রাম

  3. একটি গ্রাফ ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে C++ প্রোগ্রাম

  4. একটি ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে C++ প্রোগ্রাম