Negli scacchi, la notazione di Forsyth-Edwards , più comunemente chiamata "FEN", è un modo testuale di trascrivere le schede. Descrive ciascuna delle otto file della scacchiera (chiamate "ranghi" negli scacchi) dall'alto verso il basso dalla prospettiva di White. I pezzi sono scritti come K (re), Q (regina), R (torre), B (vescovo), N (cavaliere) e P (pedone). I pezzi neri usano queste lettere in minuscolo e i pezzi bianchi usano queste lettere in maiuscolo. Gli spazi vuoti sono indicati da un numero da 1 a 8 che indica quanti spazi vuoti consecutivi ci sono. Un rango completamente vuoto sarebbe 8
, una singola torre nera nella colonna più a destra (chiamata "file" negli scacchi) 7r
e due pedine bianche su ciascuna estremità di una fila PP4PP
. I ranghi sono separati da a/
. Di solito vengono aggiunte altre informazioni, che indicano da che parte devono spostarsi, i diritti di castling e en passant , il numero di movimento e l'orologio a metà movimento, ma li ignoreremo ai fini di questa sfida.
Ingresso
Una stringa FEN, dalla riga di comando o STDIN, come preferisci. Puoi presumere che questa stringa sia sempre valida.
Produzione
Scrivi a STDOUT una semplice rappresentazione in arte ASCII della lavagna come sembrerebbe effettivamente:
- I pezzi sono rappresentati dal loro personaggio in FEN
- I quadrati vuoti sono rappresentati da spazi
- Pezzi e quadrati sono separati da un tubo
|
e ci sono tubi su ciascun lato del tabellone
Quindi 8/8/8/8/8/8/8/8
appare una lavagna vuota, scritta come in FEN
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
La posizione iniziale di una partita a scacchi è scritta come rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
e apparirebbe come
|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 posizione finale di Anderssen-Kieseritzky 1851 , chiamata "The Immortal Game" nella comunità degli scacchi, è scritta come r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1
, e il tuo programma quando alimentato quell'input produrrebbe:
|r| |b|k| | | |r|
|p| | |p|B|p|N|p|
|n| | | | |n| | |
| |p| |N|P| | |P|
| | | | | | |P| |
| | | |P| | | | |
|P| |P| |K| | | |
|q| | | | | |b| |