Формат FEN (Forsyth-Edwards Notation) используется для описания отдельных шахматных позиций. Он описывает расположение фигур на доске; цвет игрока, чья сейчас очередь ходить; возможность сделать рокировку и другие параметры позиции, влияющие на партию.
Вся информация о позиции хранится в одной строке. Она может храниться в файле с расширением fen.
Запись FEN содержит 6 полей, разделённых между собой одним пробелом. Несколько пробелов или символ табуляции между полями не допускается.
Описания полей:
Расположение фигур. Описывается построчно сверху-вниз (с 8-й строки до 1-й). Описания отдельных строк разделяются символом "/". Внутри отдельной строчки клетки описываются слева-направо (от a до h). Каждая фигура кодируется латинским символом: пешка - "P", конь - "N", слон - "B", ладья - "R", королева - "Q", король - "K". Белые фигуры кодируются прописными символами ("PNBRQK"), а чёрные - строчными ("pnbrqk"). Пустые клетки кодируются числом от 1 до 8, означающем число идущих подряд пустых клеток.
Чей следующий ход. Символ "w" означает, что сейчас будет ход белых, а "b" - чёрных.
Возможность рокировки. Если никто рокировку уже сделать не может, то используется символ "-". В противном случае, используется набор символов: "K" - белые могут сделать короткую рокировку, "Q" - белые могут сделать длинную рокировку, "k" - чёрные могут сделать короткую рокировку, "q" - чёрные могут сделать длинную рокировку. Символы должны быть упорядочены в таком порядке: "KQkq".
Взятие на проходе. Здесь записываются координаты клетки, на которую передвинется пешка, если произойдёт взятие на проходе. Если взятие на проходе невозможно, то используется символ "-".
Число незначащих полуходов. То есть число полуходов, при которых не передвигались пешки и не происходило взятия фигур. Это поле используется, так как после 50 незначащих полуходов в партии объявляется ничья.
Число ходов в партии. Оно исчисляется с единицы и увеличивается на 1 после каждого хода чёрных.
Примеры:
Для стартовой позиции запись FEN выглядит так:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
После хода 1. e4 e5 она станет такой:
rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 2
|