En ajedrez, la notación de Forsyth-Edwards , más comúnmente llamada "FEN", es una forma textual de transcribir tableros. Describe cada una de las ocho filas del tablero (llamadas "rangos" en ajedrez) de arriba a abajo desde la perspectiva de White. Las piezas se escriben como K (rey), Q (reina), R (torre), B (alfil), N (caballero) y P (peón). Las piezas negras usan estas letras en minúsculas, y las piezas blancas usan estas letras en mayúsculas. Los espacios vacíos se indican mediante un número del 1 al 8 que indica cuántos espacios vacíos consecutivos hay. Un rango completamente vacío sería 8
, una sola torre negra en la columna más a la derecha (llamada "archivos" en ajedrez) 7r
, y dos peones blancos en cada extremo de una fila PP4PP
. Los rangos están separados por un/
. Normalmente existe otra información adicional, lo que indica de qué lado es mover, enroque y en passant derechos, número de jugadas, y el reloj halfmove, pero vamos a ignorar a los efectos de este desafío.
Entrada
Una cadena FEN, desde la línea de comando o STDIN, como desee. Puede suponer que esta cadena siempre es válida.
Salida
Escriba a STDOUT una simple representación artística ASCII de la pizarra tal como aparecería en realidad:
- Las piezas están representadas por su personaje en FEN
- Los cuadrados vacíos están representados por espacios.
- Las piezas y los cuadrados están separados por una tubería
|
y hay tuberías a cada lado del tablero.
Entonces un tablero vacío, escrito como 8/8/8/8/8/8/8/8
en FEN, aparecería como
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
La posición inicial de un juego de ajedrez se escribe como rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
, y aparecería como
|r|n|b|q|k|b|n|r|
|p|p|p|p|p|p|p|p|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
|P|P|P|P|P|P|P|P|
|R|N|B|Q|K|B|N|R|
La posición final de Anderssen-Kieseritzky 1851 , llamada "El juego inmortal" en la comunidad de ajedrez, se escribe como r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1
, y su programa cuando se alimenta esa entrada generaría:
|r| |b|k| | | |r|
|p| | |p|B|p|N|p|
|n| | | | |n| | |
| |p| |N|P| | |P|
| | | | | | |P| |
| | | |P| | | | |
|P| |P| |K| | | |
|q| | | | | |b| |