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

পাইথনে শতর্ঞ্জের ঘোড়া (knight) দিয়ে টার্গেট পজিশনে যেতে ন্যূনতম স্টেপ বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে দুটি মান r এবং c আছে। যদি একটি চেস নাইট (ঘোড়া) অসীম বড় চেসবোর্ডে (0, 0) পজিশনে থাকে, তবে (r, c) লোকেশনে পৌঁছানোর জন্য ন্যূনতম কতটি মুভ লাগবে তা বের করতে হবে। নাইট শतरঞ্জের নিয়ম অনুযায়ী মুভ করে: দুটি স্কোয়ার হরিজন্টালি এবং একটি ভার্টিক্যালি, অথবা দুটি ভার্টিক্যালি এবং একটি হরিজন্টালি।

উদাহরণস্বরূপ, যদি ইনপুট হয় r = 6, c = 1, তবে আউটপুট হবে 3। লাল শুরুতে, সবুজ শেষে, হলুদ মধ্যবর্তী স্টেপ।

পাইথনে শতর্ঞ্জের ঘোড়া (knight) দিয়ে টার্গেট পজিশনে যেতে ন্যূনতম স্টেপ বের করার প্রোগ্রাম

সমাধানের ধাপসমূহ:
  • যদি r < c হয়, তবে r, c = c, r (সওয়াপ)
  • যদি (r, c) == (1, 0) হয়, তবে 3 রিটার্ন করুন।
  • যদি (r, c) == (2, 2) হয়, তবে 4 রিটার্ন করুন।
  • delta := r - c
  • যদি c > delta হয়, তবে delta - 2 * ((delta - c) // 3) রিটার্ন করুন।
  • অন্যথায়, delta - 2 * ((delta - c) // 4) রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, r, c):
        if r < c:
            r, c = c, r
        if (r, c) == (1, 0):
            return 3
        if (r, c) == (2, 2):
            return 4
        delta = r - c
        if c > delta:
            return delta - 2 * ((delta - c) // 3)
        else:
            return delta - 2 * ((delta - c) // 4)

ob = Solution()
r = 6
c = 1
print(ob.solve(r, c))
ইনপুট
6, 1
আউটপুট
3
  1. পাইথনে চেস টুকরোর প্রতিটি পজিশনে পৌঁছানোর ন্যূনতম মুভ বের করা

  2. Python দিয়ে সব নোডে পৌঁছাতে মিনিমাম ভার্টেক্স বের করার প্রোগ্রাম

  3. পাইথনে রোবট লক্ষ্য অবস্থানে পৌঁছাতে পারে কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে লিস্টে সর্বোচ্চ ও ন্যূনতম উপাদানের পজিশন বের করার প্রোগ্রাম