====== 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]]