퀸 공격

퀸 공격

보통

지침

체스판 위에 있는 두 퀸의 위치가 주어졌을 때, 두 퀸이 서로를 공격할 수 있는 위치에 있는지 판별해요.

체스에서 퀸은 같은 행, 열, 대각선에 있는 기물을 공격할 수 있어요.

체스판은 8x8 배열로 나타낼 수 있어요.

따라서 흰 퀸이 c5(0부터 세면 열 2, 행 3)에 있고 검은 퀸이 f2(0부터 세면 열 5, 행 6)에 있다면, 배치는 다음과 같아요:

두 퀸이 있는 체스판. 에 있는 퀸에서 뻗어 나온 화살표가 파일, 랭크, 대각선을 따라 잡을 수 있는 방향을 나타내요.

두 퀸이 서로를 공격할 수 있는지도 답할 수 있어요. 이 경우에도 두 퀸은 서로를 공격할 수 있다고 답할 수 있어요. 두 기물이 같은 대각선을 공유하기 때문이에요.

출처

체스판 이미지는 habere-et-dispertire가 LaTeX와 Ulrike Fischer의 chessboard 패키지를 사용해 만들었어요.

힌트

이 연습 문제를 완료하려면 다음 함수를 구현해야 해요:

  • boardString
  • canAttack

타입 시그니처는 이미 준비되어 있지만, 함수는 직접 정의해야 해요.

위치는 두 개의 튜플로 나타내요:

  • 첫 번째 요소는 행이에요 (체스 용어로 rank).
  • 두 번째 요소는 열이에요 (체스 용어로 file).
  • (0, 0)은 보드의 왼쪽 위, (0, 7)은 오른쪽 위,
  • (7, 0)은 왼쪽 아래, (7, 7)은 오른쪽 아래예요.
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Haskell Exercism

퀸 공격 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.