Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 체스판에서 Queen이 주어진 셀을 공격할 수 있는지 확인

<시간/>

체스판에 여왕과 상대에 대한 두 개의 좌표가 있다고 가정합니다. 이 점은 각각 Q와 O입니다. 퀸이 상대를 공격할 수 있는지 여부를 확인해야 한다. 퀸은 같은 행, 같은 열, 대각선으로 공격할 수 있다는 것을 알고 있습니다.

따라서 입력이 Q =(1, 1) O =(4, 4)와 같으면 Q가 대각선으로 (4, 4) 갈 수 있으므로 출력은 True가 됩니다.

Python의 체스판에서 Queen이 주어진 셀을 공격할 수 있는지 확인

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • Q의 x가 O의 x와 같으면
    • 참 반환
  • Q의 y가 O의 y와 같으면
    • 참 반환
  • Q의 |x - O의 x| Q의 y - O의 y|와 같으면
    • 참 반환
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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