Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में जांचें कि शतरंज बोर्ड पर क्वीन दिए गए सेल पर हमला कर सकती है या नहीं

मान लीजिए हमारे पास शतरंज बोर्ड पर क्वीन और प्रतिद्वंद्वी के लिए दो निर्देशांक हैं। ये बिंदु Q और O हैं। हमें यह जांचना है कि क्या क्वीन प्रतिद्वंद्वी पर हमला कर सकती है या नहीं। जैसा कि हम जानते हैं, क्वीन उसी पंक्ति, उसी स्तंभ और विकर्ण में हमला कर सकती है।

उदाहरण के लिए, यदि इनपुट Q = (1, 1), O = (4, 4) है, तो आउटपुट True होगा क्योंकि Q विकर्ण में (4, 4) जा सकती है।

पायथन में जांचें कि शतरंज बोर्ड पर क्वीन दिए गए सेल पर हमला कर सकती है या नहीं

समाधान दृष्टिकोण

क्वीन तीन स्थितियों में हमला कर सकती है: समान पंक्ति (x निर्देशांक समान), समान स्तंभ (y निर्देशांक समान), या विकर्ण (x और y अंतर का निरपेक्ष मान समान)।

एल्गोरिदम चरण:

  1. यदि Q[0] == O[0] (समान पंक्ति), तो True लौटाएं
  2. यदि Q[1] == O[1] (समान स्तंभ), तो True लौटाएं
  3. यदि abs(Q[0] - O[0]) == abs(Q[1] - O[1]) (विकर्ण), तो True लौटाएं
  4. अन्यथा False लौटाएं

पायथन कार्यान्वयन

def solve(Q, O):
    if Q[0] == O[0]:
        return True
    if Q[1] == O[1]:
        return True
    if abs(Q[0] - O[0]) == abs(Q[1] - O[1]):
        return True
    return False

Q = (1, 1)
O = (4, 4)
print(solve(Q, O))  # True

इनपुट

(1, 1), (4, 4)

आउटपुट

True

अन्य उदाहरण:

  • Q=(2,3), O=(2,7) → True (समान पंक्ति)
  • Q=(2,3), O=(5,3) → True (समान स्तंभ)
  • Q=(2,3), O=(5,6) → True (विकर्ण: |2-5|=3, |3-6|=3)
  • Q=(2,3), O=(5,7) → False (|2-5|=3, |3-7|=4, समान नहीं)
  1. - पायथन में जांचें कि दी गई स्ट्रिंग सूची के स्ट्रिंग तत्वों को जोड़कर बनाई जा सकती है या नहीं

    हमें कभी-कभी यह जांचने की आवश्यकता होती है कि कोई आवश्यक स्ट्रिंग सूची में मौजूद कई स्ट्रिंग्स से बनाई जा सकती है या नहीं। इसका क्रम भी मायने नहीं रखना चाहिए जिसमें स्ट्रिंग्स सूची में मौजूद हैं जिन्हें जोड़कर आवश्यक स्ट्रिंग प्राप्त की जानी है। permutations के साथ itertools से हम permutations फंक्

  1. - Python में कैसे जांचें कि क्लास एट्रिब्यूट दिए गए क्लास में डिफाइन या डेराइव था?

    नीचे दिया गया कोड दिखाता है कि एट्रिब्यूट foo क्लासेस A और B में डिफाइन या डेराइव था। उदाहरण class A: foo = 1 class B(A): pass print(A.__dict__) # हम देखते हैं कि एट्रिब्यूट foo क्लास A के __dict__ में है। इसलिए foo क्लास A में डिफाइन है। print(hasattr(A, foo)) # हम देखते हैं कि क्लास A

  1. - Python में कैसे जांचें कि A, B का सुपरक्लास है?

    हमारे पास क्लासेस A और B निम्न प्रकार से परिभाषित हैं: class A(object): pass class B(A): pass उदाहरण A को B का सुपर क्लास दो तरीकों से साबित किया जा सकता है: class A(object): pass class B(A): pass print(issubclass(B, A)) # यहां हम issubclass() मेथड का उपयोग करके चेक करते हैं कि B