In order to process a log, a model of the chess board's current
position is essential. In addition to the basic 64 squares containing
the pieces, several additional facts are necessary to capture the game
state. The current state of a chess game is a 6-tuple of the following
items:
Piece Placement. An 8-tuple showing pieces in each rank from 8 down to 1. Pieces
are shown as single letters, upper case for white (PRNBQK), lower case
for black (prnbqk). Pieces are coded P for pawn, R for rook, N for
knight, B for bishop, Q for queen and K for king. Empty spaces are
shown as the number of contiguous spaces. The entire rank can be coded
as a 1-8 character string. 8 means no pieces in this rank. 4p3 means
four empty spaces (a-d), a black pawn in file e, and 3 empty spaces
(f-h). The entire 8-tuple of strings can be joined to make a string
delimited by /
's. For example
rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R
.
Active Color. A value (w
or b
) showing
who's turn to move is next. This color is
active
because this player is contemplating their move. The starting
position, for instance, has an active color of w
,
because white moves first.
Castling Availability. A string with 1 to 4 characters showing which castling moves are
still allowed. If none are allowed, a -
is shown.
White codes are capital letters, black are lower case. When king side
castling is possible, a K (white) or k (black) is included. When queen
side caslting is possible a Q (white) or q (black) is included. At the
start of the game, there are four characters: KQkq
.
As the game progress and kings castle or are moved for other reason,
or rooks are moved, the string reduces in size to
-
.
En Passant
target. Either -
or a square in rank 6 or 3. When a
pawn's first move advances two spaces (from 7 to 5 for black or 2 to 4
for white), the skipped-over space is named here on the next turn
only. If an opposing pawn moves to this space, an
En
Passant
capture has occured. If no
En
Passant
vulnerability, a -
is
given.
Half Move Count. How many 1/2 moves since a pawn was advanced or a piece
captures. This is zero after a pawn moves or a piece is captured. This
is incremented after each 1/2 move (white or black) where no pawn
moves and no piece is captured. When this reaches 50, the game is
technically a draw.
Turn. This is the turn count, it increments from 1, by 1, after
black's move.