チェスのゲームの現在の状態を表す8x8の文字のグリッドが与えられた場合、プログラムのタスクは、チェックメイトをもたらす白の次の動きを見つけることです(答えは常に1つの動きで合致します)。
入力
入力は、STDIN-8文字の8行で行われます。各文字の意味は次のとおりです。
K/k - king
Q/q - queen
B/b - bishop
N/n - knight
R/r - rook
P/p - pawn
- - empty square
大文字は白い部分を表し、小文字は黒を表します。ボードは、白が下から上に、黒が上から下に向かって再生されるように配置されます。
出力
代数記法でチェックメイトになる白の動き。ピースが取られたときに表記する必要はありません。また、同じ動きをすることができる2つの同一のピース間の曖昧さを解消することを心配する必要もありません。
サンプル入力
例1
入力:
------R-
--p-kp-p
-----n--
--PPK---
p----P-r
B-------
--------
--------
出力:
c6
例2
入力:
--b-r--r
ppq-kp-p
-np-pn-B
--------
---N----
--P----P
PP---PP-
R--QRBK-
出力:
Nf5
例3
入力:
---r-nr-
-pqb-p-k
pn--p-p-
R-------
--------
-P-B-N-P
-BP--PP-
---QR-K-
出力:
Rh5
ソリューションにはキャスティングや同伴者は含まれないと想定できます。
これはコードゴルフです-最短のソリューションが勝ちます。
(mateinone.comからの例-パズル81、82、83)