Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่า Queen สามารถโจมตีเซลล์ที่กำหนดบนกระดานหมากรุกได้หรือไม่ใน Python


สมมติว่าเรามีพิกัดสองจุดบนกระดานหมากรุกสำหรับ queen และ opponent จุดเหล่านี้คือ Q และ O ตามลำดับ เราต้องตรวจสอบว่า queen สามารถโจมตี opponent ได้หรือไม่ ตามที่เรารู้ queen โจมตีได้ในแถวเดียวกัน คอลัมน์เดียวกัน และแนวทแยงมุม

เช่น ถ้าอินพุตเป็น Q = (1, 1), O = (4, 4) ผลลัพธ์จะเป็น True เนื่องจาก Q สามารถไป (4, 4) แบบแนวทแยงมุมได้

ตรวจสอบว่า Queen สามารถโจมตีเซลล์ที่กำหนดบนกระดานหมากรุกได้หรือไม่ใน Python

ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:

  • ถ้า x ของ Q เท่ากับ x ของ O แล้ว
    • คืนค่า True
  • ถ้า y ของ Q เท่ากับ y ของ O แล้ว
    • คืนค่า True
  • ถ้า |x ของ Q - x ของ O| เท่ากับ |y ของ Q - y ของ O| แล้ว
    • คืนค่า True
  • คืนค่า 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))

อินพุต

(1, 1), (4, 4)

ผลลัพธ์

True