소개
중국 체스라고도 하는 xiangqi 게임은 중국, 베트남, 대만 및 기타 동아시아 국가에서 인기있는 체스와 유사한 게임입니다. xiangqi의 양면 색상은 빨간색과 검은 색입니다. xiangqi에는 장군 ( G
), 고문 ( A
), 코끼리 ( E
), 말 ( H
), 전차 ( R
), 대포 ( C
) 및 군인 ( S
)의 7 가지 조각이 있습니다 . 이 문제를 해결하기 위해 대문자는 빨간색으로, 소문자는 검정색으로 간주합니다. 이 조각들 대부분은 서양 체스에서는 대등 한 것이지만, 대포라는 완전히 독특한 조각이 있습니다.
대포 체스에 루크 또는 샹치에서 전차합니다 (X 또는 Y 축선 중 어느 하나의 공간에 임의의 개수의 이동) 등으로 이동하지만,이 방법을 공격 할 수 없다. 대신, X 이상 Y 축 (가 이동 같은 방식으로) 함께 점프 공격 한 반대 색의 조각에 색상 (친구 또는 적) 및 착륙, 그것을 다음 캡처의 조각. 모든 체스 및 xiangqi 조각과 마찬가지로 대포는 자신의 색 조각을 캡처 할 수 없습니다.
예를 들어, 다음 다이어그램에서 대포 ( C
)가 이동할 수 있는 공간 은로 표시되고 *
, 점프 및 캡처 X
할 수있는 공간은 검은 색 / 소문자가있는 것으로 가정합니다.
....X....
.........
.........
....h....
....*....
****C**aX
....E....
....X....
....g....
....R....
도전
xiangqi 보드와 해당 보드의 대포 좌표를 입력으로 받으면 대포가 이동하거나 이동할 수있는 좌표 목록을 출력하는 프로그램 또는 함수를 작성하십시오.
모든 I / O의 형식은 유연합니다.
xiangqi 보드에 허용되는 형식에는 줄 바꿈으로 구분 된 문자열, 문자열 목록 또는에없는 다른 구분 기호가있는 문자열이 aceghrsACEGHRS.
있습니다. 보드가 항상 xiangqi 보드의 크기 인 9x10이라고 가정 할 수 있습니다.
보드 자체의 내용은 보드의 .
빈 지점을 나타내는 여러 마침표 ( )와 조각을 나타내는 문자로 구성됩니다. 조각 대 문자 매핑은 다음과 같습니다.
A -> advisor
C -> cannon
E -> elephant
G -> general
H -> horse
R -> chariot
S -> soldier
대문자는 빨간색 조각을 나타내고 소문자는 검은 조각을 나타냅니다. 여기에 나열되지 않은 (즉,에없는 aceghrsACEGHRS.
) 문자 는 보드에 나타나지 않습니다.
입력 좌표의 형식은 유연하며 출력 좌표의 형식과 일치하지 않아도됩니다. 예를 들어 두 개의 정수 요소, 두 개의 튜플, 구분 기호가있는 두 개의 숫자 또는 두 개의 문자 목록 일 수 있습니다. 0 인덱스 또는 1 인덱스 일 수도 있습니다. 보드의 좌표가 항상 대포 ( C
또는 c
)로 해석된다고 가정 할 수 있습니다 .
대포가 점프하고 이동할 수있는 좌표는 출력에서 동일한 목록에 나타나야합니다. 둘 사이의 구별은 필요하지 않습니다. 개별 출력 좌표에 허용되는 형식은 입력 좌표에 대한 형식과 동일합니다. 좌표는 줄 바꿈으로 구분되거나 목록으로 출력되거나 다른 표현 일 수 있습니다. 특별한 순서는 필요하지 않습니다. 순서는 결정론적일 필요조차 없다.
대포와 동일한 색상 (케이스)으로 점프하는 것은 합법적이지 않으므로 출력에 나타나지 않습니다.
테스트 사례
모든 테스트 사례가 가능한 xiangqi 위치는 아닙니다.
Input board
Input coordinate (0-indexed)
List of output coordinates
.........
.........
.........
.........
.........
....C....
.........
.........
.........
.........
(4, 5)
[(0, 5), (1, 5), (2, 5), (3, 5), (5, 5), (6, 5), (7, 5), (8, 5), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 6), (4, 7), (4, 8), (4, 9)]
.........
.....G...
.........
.........
.....e...
.........
.........
h..R.c..S
.....a...
.........
(5, 7)
[(4, 7), (6, 7), (7, 7), (5, 6), (5, 5), (5, 1)]
..s......
..A...e..
.........
EACCcsh.H
..r......
.....S...
......s..
....C....
..g......
(2, 3)
[(2, 0), (2, 2), (4, 3), (2, 9)]
rheagaehr
.........
.c.....c.
s.s.s.s.s
.........
.........
S.S.S.S.S
.C.....C.
.........
RHEAGAEHR
(7, 7)
[(2, 7), (3, 7), (4, 7), (5, 7), (6, 7), (8, 7), (7, 0), (7, 3), (7, 4), (7, 5), (7, 6), (7, 8)]
채점
이것은 코드 골프가장 짧은 답변 (바이트)이 이깁니다. 행복한 골프!