|
A Forsyth–Edwards-jelölés
A Forsyth–Edwards-jelölés (Forsyth–Edwards Notation, FEN) a sakkjáték egy konkrét
táblaállásának leírására használt jelölésrendszer. A FEN célja, hogy minden olyan információt
biztosítson, amelyek segítségével újraindítható egy játszma egy adott állásból.
A „FEN-rekord” egy konkrét játékállást ír le, egyetlen sorban, csak az ASCII
karakterkészlet felhasználásával. A FEN-rekord hat mezőből áll, amelyeket egy-egy szóköz
választ el egymástól. Az egyes mezők a következők:
-
A figurák elhelyezkedése (világos szemszögéből). A figurák soronként vannak megadva, a
nyolcadik sorral kezdve az első sorig; a sorokon belül az egyes mezők tartalma
van megadva az a vonaltól a h vonalig. Az egyes figurákat – a
szabványos algebrai jelölésnek megfelelően – egyetlen betűvel jelöljük, amelyek a
megszokott angol elnevezéseket tükrözik: „
P ” jelöli a gyalogot
(pawn), „N ” a huszárt (knight), „B ” a
futárt (bishop), „R ” a bástyát (rook),
„Q ” a vezért (queen) és „K ” a királyt
(king). A világos figurákat nagybetűkkel („PNBRQK ”), a sötéteket
kisbetűkkel („pnbrqk ”) jelöljük. Az üres mezőket egy számjeggyel
adjuk meg 1-től 8-ig (a szomszédos üres mezők számának megfelelően), a sorokat pedig
„/ ” választja el egymástól.
-
A lépni következő játékos színe. A „
w ” azt jelenti, hogy világos
(white) következik, a „b ” pedig, hogy sötét (black).
-
Sáncolási lehetőségek. Ha egyik fél sem tud sáncolni, akkor „
- ”.
Egyébként egy vagy több betűből áll: „K ” (világos sáncolhat a
királyoldalon), „Q ” (világos sáncolhat a vezéroldalon),
„k ” (sötét sáncolhat a királyoldalon) és/vagy
„q ” (sötét sáncolhat a vezéroldalon).
-
En passant célmező algebrai jelöléssel. Ha nincs en passant célmező, akkor
„
– ”. Ha egy gyalog éppen most lépett kettőt, akkor ez a gyalog
„mögötti” mező. Ezt attól függetlenül feljegyezzük, hogy van-e olyan gyalog,
amelyik végrehajthat en passant ütést.
-
Féllépésszámláló. Az utolsó gyaloglépés vagy ütés óta eltelt féllépések száma. Arra
használjuk, hogy eldönthessük, hogy kérhetnek-e döntetlent a játékosok az 50 lépéses
szabály alapján.
-
A teljes lépések száma. 1-ről indul, és sötét lépései után nő eggyel.
A feladatod egy olyan program írása, amely adott FEN-rekordok esetén kirajzolja a megfelelő
sakktáblaállásokat.
A bemenet specifikációja
A bemenet soronként egy FEN-rekordot tartalmaz. A bemenetet fájlvégjelig kell olvasni.
A kimenet specifikációja
Minden FEN-rekord esetén az általa reprezentált sakktáblát kell a kimenetre írni. Minden
sakktáblának 8 sorból, azoknak pedig 8 karakterből kell állnia. Az üres mezőket
„. ” karakter, a figurákat pedig nagybetűk és kisbetűk jelöljék
(a fentieknek megfelelően)! Két egymást követő táblát egy-egy üres sor válasszon el
egymástól!
Az utolsó sakktábla után ne legyen üres sor!
Példa bemenet
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1 rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2 rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2
letöltés szöveges állományként
A példa bemenethez tartozó kimenet
rnbqkbnr pppppppp ........ ........ ........ ........ PPPPPPPP RNBQKBNR
rnbqkbnr pppppppp ........ ........ ....P... ........ PPPP.PPP RNBQKBNR
rnbqkbnr pp.ppppp ........ ..p..... ....P... ........ PPPP.PPP RNBQKBNR
rnbqkbnr pp.ppppp ........ ..p..... ....P... .....N.. PPPP.PPP RNBQKB.R
letöltés szöveges állományként
|
|