Data una griglia di lettere 8x8 che rappresenta lo stato attuale di una partita a scacchi, il compito del programma è quello di trovare una mossa successiva per il bianco che si traduca in scacco matto (la risposta sarà sempre l'accoppiamento in una mossa).
Ingresso
L'ingresso sarà su STDIN - 8 righe di 8 caratteri ciascuna. I significati di ciascun personaggio sono i seguenti:
K/k - king
Q/q - queen
B/b - bishop
N/n - knight
R/r - rook
P/p - pawn
- - empty square
Le lettere maiuscole rappresentano i pezzi bianchi e le lettere minuscole rappresentano il nero. Il tabellone sarà orientato in modo che il bianco giochi dall'alto e il nero dall'alto.
Produzione
Una mossa per il bianco che si traduce in scacco matto, in notazione algebrica . Non è necessario annotare quando è stato preso un pezzo, né è necessario preoccuparsi di chiarire le ambiguità tra due pezzi identici che possono fare la stessa mossa.
Input di esempio
Esempio 1
Ingresso:
------R-
--p-kp-p
-----n--
--PPK---
p----P-r
B-------
--------
--------
Produzione:
c6
Esempio 2
Ingresso:
--b-r--r
ppq-kp-p
-np-pn-B
--------
---N----
--P----P
PP---PP-
R--QRBK-
Produzione:
Nf5
Esempio 3
Ingresso:
---r-nr-
-pqb-p-k
pn--p-p-
R-------
--------
-P-B-N-P
-BP--PP-
---QR-K-
Produzione:
Rh5
Puoi presumere che la soluzione non coinvolgerà castling o en-passant.
Questo è code-golf - vince la soluzione più breve.
(Esempi tratti da mateinone.com - puzzle 81, 82 e 83)