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

पायथन में शतरंज बोर्ड पर राजा की चाल वैधता जांच (नाइट्स के साथ)

समस्या विवरण

अनंत शतरंज बोर्ड पर N नाइट्स के निर्देशांक और राजा का निर्देशांक दिया गया है। जांचें कि क्या राजा चेकमेट है (कोई वैध चाल नहीं)। बोर्ड निर्देशांक: -10⁹ ≤ x,y ≤ 10⁹।

उदाहरण

नाइट्स: [[2,1], [1,3], [3,6], [5,5], [6,1], [7,3]]

राजा: [4, 3]

आउटपुट: True (चेकमेट)

एल्गोरिदम

  1. डिक्शनरी my_dict में सभी नाइट्स की पोजीशन और उनकी अटैक पोजीशन (8 संभावित चालें) मार्क करें
  2. राजा के 8 पड़ोसी वर्गों (+1/-1 x,y) के लिए:
    • यदि कोई वर्ग my_dict में नहीं है (सुरक्षित), तो False (चेकमेट नहीं)
  3. सभी 8 वर्ग कवर हैं → True (चेकमेट)

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

def is_checkmate(knights, king_pos):
    attacked = set()
    for x, y in knights:
        attacked.add((x, y))
        for dx, dy in [(-2,1),(-2,-1),(1,2),(1,-2),(-1,2),(2,1),(2,-1),(-1,-2)]:
            attacked.add((x+dx, y+dy))
    kx, ky = king_pos
    for dx in (-1, 0, 1):
        for dy in (-1, 0, 1):
            if dx == 0 and dy == 0:
                continue
            if (kx+dx, ky+dy) not in attacked:
                return False
    return True

knights = [[2,1],[1,3],[3,6],[5,5],[6,1],[7,3]]
king = [4, 3]
print(is_checkmate(knights, king))

इनपुट

[[2,1],[1,3],[3,6],[5,5],[6,1],[7,3]], [4,3]

आउटपुट

True
  1. पायथन में दाएं k बार घुमाकर ith एलिमेंट ढूंढने का प्रोग्राम पायथन में दाएं k बार घुमाकर ith एलिमेंट ढूंढने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक एक ऐरे है, और एक मान k और दूसरा मान i है। हमें nums के एलिमेंट्स को दाएं k बार घुमाने के बाद इंडेक्स i पर एलिमेंट ढूंढना है। तो, यदि इनपुट nums = [2,7,9,8,10] k = 3 i = 2 है, तो आउटपुट 10 होगा क्योंकि तीसरे रोटेशन के बाद ऐरे [9,8,10,2,7] होगा, इसलिए अब ith एलिमेंट nums[

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

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

  1. पायथन में जांचें कि रोबोट लक्ष्य स्थिति तक पहुंच सकता है या नहीं पायथन में जांचें कि रोबोट लक्ष्य स्थिति तक पहुंच सकता है या नहीं

    मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में स्थिति (0, 0) (कार्टेशियन प्लेन) पर बैठा है। यदि हमारे पास उसकी चालों की सूची है जो वह चल सकता है, जिसमें N(उत्तर), S(दक्षिण), W(पश्चिम), और E(पूर्व) हैं। हमें जांचना है कि क्या वह गंतव्य निर्देशांक (x, y) पर पहुंच सकता है। उदाहरण के लिए, यदि इनपुट mov