|
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 1rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2rnbqkbnr/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
rnbqkbnrpppppppp................................PPPPPPPPRNBQKBNRrnbqkbnrpppppppp....................P...........PPPP.PPPRNBQKBNRrnbqkbnrpp.ppppp..........p.........P...........PPPP.PPPRNBQKBNRrnbqkbnrpp.ppppp..........p.........P........N..PPPP.PPPRNBQKB.R
letöltés szöveges állományként
|
|