폰만 입력과 출력으로 체스 판을 나타내는 문자열을 받거나 보드에서 캡처가 가능한지 여부를 반환하는 프로그램이나 함수를 작성해야합니다.
입력은 다른 조각이없는 흰색과 검은 색 폰의 위치를 나타내는 FEN 과 같은 표기법으로되어 있습니다. 적을 붙잡을 수있는 폰이 있는지 결정해야합니다.
각 등급은 등급 8로 시작하고 등급 1로 끝나는 것으로 설명됩니다. 각 등급 내에서, 각 사각형의 내용은 파일 "a"부터 파일 "h"까지 설명됩니다. 각 폰은 단일 문자로 식별됩니다 (흰색 폰 = "P", 검은 폰 = "p",). 빈 사각형은 1에서 8까지의 숫자 (빈 사각형 수)를 사용하여 기록되며 "/"는 순위를 구분합니다. (일부 위키 백과에서 가져옴)
예를 들어
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
보드를 설명
--------
pppppppp
P
PPPP PPP
--------
흰색 폰은 검은 색이 대각선으로 위를 향하면 검은 색을 캡처 할 수 있고 (검정색은 왼쪽 위 또는 오른쪽) 검은 색 폰은 흰색이 아래쪽을 향하면 흰색을 캡처 할 수 있습니다 (흰색은 왼쪽 아래 또는 오른쪽 아래). 다른 캡쳐 움직임은 ( 엔 옆모습 )로 간주 될 수 없습니다.
입력
- FEN 문자로 구성된 -like 문자열
12345678pP/
. - 입력은 유효한 체스 게임 위치의 폰을 설명합니다. 이것은 (더 복잡한 제약 조건들 중에서도) 각면에 최대 8 개의 폰이 있고 1과 8 등급에는 폰이 없다는 것을 의미합니다.
산출
예
정확한 출력을 가진 입력 (한 줄에 하나씩)
8/7p/6P1/8/8/8/8/8
8/8/p7/1P6/3P3p/8/8/8
8/2P5/8/4P1p1/2p2P2/3p4/3p1P2/8
8/P7/8/5P2/2pp4/3P2p1/3pP3/8
8/P7/p7/p1P1P3/1P3p2/8/1p6/8
8/4p1P1/2P2P1P/2p1pPpp/8/6P1/pP1p4/8
잘못된 출력을 가진 입력 (한 줄에 하나씩)
8/8/8/8/8/8/8/8
8/7P/6p1/8/8/8/8/8
8/7p/7P/8/8/8/8/8
8/pppppppp/8/8/8/8/PPPPPPPP/8
8/p7/8/1p6/5P2/8/8/8
8/p7/P7/2P1p1p1/2p5/8/PP6/8
이것은 코드 골프이므로 가장 짧은 참가작이 승리합니다.
7P
폰이 마지막 8 번째 파일에 있음을 의미합니다. (하지만 다이어그램이 잘못되었습니다, 나는 그것을 수정했습니다.)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
됩니까?