====== Chess - Programming - Polyglot Book Format - Piece ====== **Piece** is part of the [[Chess:Programming:Polyglot Book Format:Key|Key]]. It is the exclusive or of entries from the **RANDOM_PIECE** sub-array, one for each piece on the board. The offset of the entry in **RANDOM_PIECE** corresponding to a piece is computed as follows: piece = 64 * Piece_Type + 8 * Rank + File; ---- **Piece_Type** is encoded as: constexpr int BlackPawn = 0; constexpr int WhitePawn = 1; constexpr int BlackKnight = 2; constexpr int WhiteKnight = 3; constexpr int BlackBishop = 4; constexpr int WhiteBishop = 5; constexpr int BlackRook = 6; constexpr int WhitekRook = 7; constexpr int BlackQueen = 8; constexpr int WhiteQueen = 9; constexpr int BlackKing = 10; constexpr int WhiteKing = 11; constexpr int None = 12; ---- **Rank** and **File** are counted from 0 to 7: ^Square^File^Rank^ |a1|0|0| |h1|7|0| |a8|0|7| |h8|7|7| ---- [[Chess:Programming:Polyglot Book Format:Piece|Piece]]