원자 체스 는 모든 캡처가 "폭발"을 일으키고 캡처 된 조각을 파괴하는 조각, 캡처하는 조각, 그리고 1 제곱 반경의 모든 풋이 아닌 체스 의 (매우 재미있는) 변형입니다. 이 도전의 목표는 전체 원자 체스 게임을하는 것이 아니라 특정 움직임이있을 때 일어나는 일을 시뮬레이션하는 것입니다.
면책 조항 : 폭발음 효과는 포함되어 있지 않습니다.
입력
보드 위치는 Forsyth-Edwards 표기법 (일반적으로 FEN)으로 제공되지만 첫 번째 필드 만 제공됩니다. 예를 들어 다음과 같은 입력이 있습니다.
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
시작 위치를 나타냅니다.
이것은 문자열 또는 해당 언어와 동일해야합니다. 유효한 것으로 보장됩니다. 예를 들어 열 왕이 있거나 전혀 왕이없는 경우에는 신경 쓸 필요가 없습니다.
또한 시뮬레이션 할 이동이 제공되는데, 이는 두 개의 정사각형 이름으로 표시됩니다. 이동 될 정사각형과 이동하는 정사각형. 예를 들어, 위의 그림에서 왕의 폰을 두 칸 앞으로 이동하면 다음과 같이 표현됩니다.
e2e4
또한 문자열로 가져와야합니다. 이동은 항상 유효하며 castling 을 지원할 필요는 없습니다 . enpassant 를 지원해야합니다 . 자세한 내용은 다음 섹션에서 설명합니다.
산출
프로그램의 출력은 입력과 동일한 부분 FEN 표기법으로 지정해야하며 지정된 이동이 필요합니다 (필요한 경우 조각 분해).
폭발에 대한 정확한 규칙은 다음과 같습니다.
캡처중인 조각을 제거합니다 (캡처가 동반자 인 경우를 제외하고 항상 입력에서 이름이 지정된 두 번째 사각형의 조각 임).
캡처를 수행하는 조각을 제거합니다 (항상 입력에 이름이 지정된 첫 번째 사각형의 조각 임).
다음과 같은 모든 부분을 제거하십시오.
캡처가 일어난 하나 주변 8 개 사각형 중 하나에 위치한 (대한 EN 옆모습을 ,이는 폭발하지 않은 경우 캡처 폰에 될 것이라고 광장입니다).
폰이 아닙니다.
익숙하지 않은 사람들을위한 패시브 룰에 대한 빠른 개요 : 폰이 시작 순위에서 두 칸 앞으로 이동하고, 한 칸 앞으로 만 움직여서 그것을 잡을 수있는 폰이 있다면 어쨌든 붙잡을 수 있습니다. 후속 이동에서만. 이 캡처는 " 전달 "(또는 프랑스어 : " en passant ") 에서 수행된다고합니다 .
테스트 사례
그림에서 녹색 화살표는 이동하려는 움직임을 다시 표시하고 녹색 원은 폭발 한 조각을 나타냅니다.
입력 : rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, g1f3
출력 :rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R
입력 : 3kBb1r/pp5p/3p4/4pn2/P7/1P2P1pP/2rP1P2/R1B3RK
, f2g3
출력 : 3kBb1r/pp5p/3p4/4pn2/P7/1P2P2P/2rP4/R1B3RK
( http://en.lichess.org/ocoSfS5I/white#36 에서 도난 당함 )
입력 : rnbqk1nr/1pp5/p2pp1pp/5p2/1bN5/2P1PQ1N/PP1P1PPP/R1B1KB1R
, f3b7
출력 : 3qk1nr/2p5/p2pp1pp/5p2/1bN5/2P1P2N/PP1P1PPP/R1B1KB1R
( http://en.lichess.org/NCUnA6LV/white#14 에서 도난 당함 )
입력 : rnbqk2r/pp2p2p/2p3pb/3pP3/5P2/2N5/PPPP2P1/R1BQKB1R
, e5d6
출력 : rnbqk2r/pp2p2p/2p3pb/8/5P2/2N5/PPPP2P1/R1BQKB1R
( http://en.lichess.org/AvgU4Skq/white#16 에서 도난 당함 ; 이것은 실제적인 움직임은 아니지만 실제로 실제로 진행중인 원자 게임을 찾기 위해 귀찮게 할 수는 없었습니다. 피)
입력 : 5r2/2k5/p1B5/1pP1p3/1P4P1/3P4/P7/1K3R1q
, c6h1
출력 : 5r2/2k5/p7/1pP1p3/1P4P1/3P4/P7/1K3R2
( http://en.lichess.org/l77efXEb/white#58 에서 도난 당함 )
채점
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다.