কম্পিউটার টিউটোরিয়াল

পাইথনে শतरঞ্জ বোর্ডে নাইট (Knight) আক্রমণ যাচাই করার প্রোগ্রাম


মান লো যাক আমাদের একটি টু-ডাইমেনশনাল বাইনারি ম্যাট্রিক্স আছে, যা একটি রেকট্যাঙ্গুলার শतरঞ্জ বোর্ডকে প্রতিনিধিত্ব করে, এখানে 0 খালি সেল এবং 1 নাইট के लिए। নাইট দুটি স্কোয়ার হরিজেন্টালি এবং একটি স্কোয়ার ভার্টিক্যালি, অথবা দুটি স্কোয়ার ভার্টিক্যালি এবং একটি স্কোয়ার হরিজেন্টালি যেতে পারে (শतरঞ্জ বোর্ডের নাইটের মতো)। আমাদের যাচাই করতে হবে কোনো দুটি নাইট একে অপর আক্রমণ করছে কিনা।

উদাহরণস্বরূপ, যদি ইনপুট হয়

00000
01000
00010

তবে আউটপুট হবে True

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:

  • row, col := ম্যাট্রিক্সের রো কাউন্ট, কলাম কাউন্ট
  • r के लिए 0 से row-1 तक की रेंज में, करें
    • c के लिए 0 से col-1 तक की रेंज में, करें
      • यदि A[r][c] शून्येतर है, तो
        • প্রতিটি nr, nc [(r+1, c-2), (r+1, c+2), (r+2, c-1), (r+2, c+1)] के लिए, करें
          • यदि nr row के रेंज में है और nc col के रेंज में है और A[nr, nc] शून्येतर है, तो
            • True रिटर्न करें
  • False रिटर्न करें

বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখুন:

উদাহরণ

class Solution:    def solve(self, A):       row, col = len(A), len(A[0])       for r in range(row):          for c in range(col):             if A[r][c]:                for nr, nc in ((r+1, c-2), (r+1, c+2), (r+2, c-1), (r+2, c+1)):                   if 0 <= nr < row and 0 <= nc 

ইনপুট

[[0,0,0,0,0], [0,1,0,0,0], [0,0,0,1,0]]

আউটপুট

True

  1. পাইথনে যাচাই করুন চেসবোর্ডে কুইন (রানি) কোনো সেল আক্রমণ করতে পারে কিনা

  2. পাইথনে issuperset() ফাংশন

  3. পাইথনে আন্ডারস্কোর (_) এর ব্যবহার

  4. পাইথনে Quine প্রোগ্রাম (স্ব-প্রजनনকারী কোড)