|
| enum class | hoover_chess_utils::pgn_reader::Square : SquareUnderlyingType {
hoover_chess_utils::pgn_reader::Square::A1 = 0U
, hoover_chess_utils::pgn_reader::Square::B1 = 1U
, hoover_chess_utils::pgn_reader::Square::C1 = 2U
, hoover_chess_utils::pgn_reader::Square::D1 = 3U
,
hoover_chess_utils::pgn_reader::Square::E1 = 4U
, hoover_chess_utils::pgn_reader::Square::F1 = 5U
, hoover_chess_utils::pgn_reader::Square::G1 = 6U
, hoover_chess_utils::pgn_reader::Square::H1 = 7U
,
hoover_chess_utils::pgn_reader::Square::A2 = 8U
, hoover_chess_utils::pgn_reader::Square::B2 = 9U
, hoover_chess_utils::pgn_reader::Square::C2 = 10U
, hoover_chess_utils::pgn_reader::Square::D2 = 11U
,
hoover_chess_utils::pgn_reader::Square::E2 = 12U
, hoover_chess_utils::pgn_reader::Square::F2 = 13U
, hoover_chess_utils::pgn_reader::Square::G2 = 14U
, hoover_chess_utils::pgn_reader::Square::H2 = 15U
,
hoover_chess_utils::pgn_reader::Square::A3 = 16U
, hoover_chess_utils::pgn_reader::Square::B3 = 17U
, hoover_chess_utils::pgn_reader::Square::C3 = 18U
, hoover_chess_utils::pgn_reader::Square::D3 = 19U
,
hoover_chess_utils::pgn_reader::Square::E3 = 20U
, hoover_chess_utils::pgn_reader::Square::F3 = 21U
, hoover_chess_utils::pgn_reader::Square::G3 = 22U
, hoover_chess_utils::pgn_reader::Square::H3 = 23U
,
hoover_chess_utils::pgn_reader::Square::A4 = 24U
, hoover_chess_utils::pgn_reader::Square::B4 = 25U
, hoover_chess_utils::pgn_reader::Square::C4 = 26U
, hoover_chess_utils::pgn_reader::Square::D4 = 27U
,
hoover_chess_utils::pgn_reader::Square::E4 = 28U
, hoover_chess_utils::pgn_reader::Square::F4 = 29U
, hoover_chess_utils::pgn_reader::Square::G4 = 30U
, hoover_chess_utils::pgn_reader::Square::H4 = 31U
,
hoover_chess_utils::pgn_reader::Square::A5 = 32U
, hoover_chess_utils::pgn_reader::Square::B5 = 33U
, hoover_chess_utils::pgn_reader::Square::C5 = 34U
, hoover_chess_utils::pgn_reader::Square::D5 = 35U
,
hoover_chess_utils::pgn_reader::Square::E5 = 36U
, hoover_chess_utils::pgn_reader::Square::F5 = 37U
, hoover_chess_utils::pgn_reader::Square::G5 = 38U
, hoover_chess_utils::pgn_reader::Square::H5 = 39U
,
hoover_chess_utils::pgn_reader::Square::A6 = 40U
, hoover_chess_utils::pgn_reader::Square::B6 = 41U
, hoover_chess_utils::pgn_reader::Square::C6 = 42U
, hoover_chess_utils::pgn_reader::Square::D6 = 43U
,
hoover_chess_utils::pgn_reader::Square::E6 = 44U
, hoover_chess_utils::pgn_reader::Square::F6 = 45U
, hoover_chess_utils::pgn_reader::Square::G6 = 46U
, hoover_chess_utils::pgn_reader::Square::H6 = 47U
,
hoover_chess_utils::pgn_reader::Square::A7 = 48U
, hoover_chess_utils::pgn_reader::Square::B7 = 49U
, hoover_chess_utils::pgn_reader::Square::C7 = 50U
, hoover_chess_utils::pgn_reader::Square::D7 = 51U
,
hoover_chess_utils::pgn_reader::Square::E7 = 52U
, hoover_chess_utils::pgn_reader::Square::F7 = 53U
, hoover_chess_utils::pgn_reader::Square::G7 = 54U
, hoover_chess_utils::pgn_reader::Square::H7 = 55U
,
hoover_chess_utils::pgn_reader::Square::A8 = 56U
, hoover_chess_utils::pgn_reader::Square::B8 = 57U
, hoover_chess_utils::pgn_reader::Square::C8 = 58U
, hoover_chess_utils::pgn_reader::Square::D8 = 59U
,
hoover_chess_utils::pgn_reader::Square::E8 = 60U
, hoover_chess_utils::pgn_reader::Square::F8 = 61U
, hoover_chess_utils::pgn_reader::Square::G8 = 62U
, hoover_chess_utils::pgn_reader::Square::H8 = 63U
,
hoover_chess_utils::pgn_reader::Square::NONE = 64U
} |
| | Named square. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::Color : ColorUnderlyingType { hoover_chess_utils::pgn_reader::Color::WHITE = 0U
, hoover_chess_utils::pgn_reader::Color::BLACK = 8U
} |
| | Color of a piece or side to move. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::Piece : PieceUnderlyingType {
hoover_chess_utils::pgn_reader::Piece::NONE = 0U
, hoover_chess_utils::pgn_reader::Piece::PAWN
, hoover_chess_utils::pgn_reader::Piece::KNIGHT
, hoover_chess_utils::pgn_reader::Piece::BISHOP
,
hoover_chess_utils::pgn_reader::Piece::ROOK
, hoover_chess_utils::pgn_reader::Piece::QUEEN
, hoover_chess_utils::pgn_reader::Piece::KING
} |
| | Named piece. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PieceAndColor : PieceAndColorUnderlyingType {
hoover_chess_utils::pgn_reader::PieceAndColor::NONE = 0U
, hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_PAWN = 1U
, hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_KNIGHT
, hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_BISHOP
,
hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_ROOK
, hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_QUEEN
, hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_KING
, hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_PAWN = 9U
,
hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_KNIGHT
, hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_BISHOP
, hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_ROOK
, hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_QUEEN
,
hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_KING
, hoover_chess_utils::pgn_reader::PieceAndColor::WHITE_NONE = 0U
, hoover_chess_utils::pgn_reader::PieceAndColor::BLACK_NONE = 8U
} |
| | Named piece and color. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PieceAndColorCompact : PieceAndColorCompactType {
hoover_chess_utils::pgn_reader::PieceAndColorCompact::NONE = 0U
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_PAWN = 1U
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_KNIGHT
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_BISHOP
,
hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_ROOK
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_QUEEN
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_KING
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_PAWN = 9U
,
hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_KNIGHT
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_BISHOP
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_ROOK
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_QUEEN
,
hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_KING
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::WHITE_NONE = 0U
, hoover_chess_utils::pgn_reader::PieceAndColorCompact::BLACK_NONE = 8U
} |
| | Named piece and color (compact representation) More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PositionStatus : PositionStatusUnderlyingType { hoover_chess_utils::pgn_reader::PositionStatus::NORMAL
, hoover_chess_utils::pgn_reader::PositionStatus::CHECK
, hoover_chess_utils::pgn_reader::PositionStatus::STALEMATE
, hoover_chess_utils::pgn_reader::PositionStatus::MATE
} |
| | Status of a position. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::MoveTypeAndPromotion : MoveTypeAndPromotionUnderlyingType {
hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::REGULAR_PAWN_MOVE = 0U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::REGULAR_KNIGHT_MOVE = 1U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::REGULAR_BISHOP_MOVE = 2U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::REGULAR_ROOK_MOVE = 3U
,
hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::REGULAR_QUEEN_MOVE = 4U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::REGULAR_KING_MOVE = 5U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::CASTLING_SHORT = 6U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::CASTLING_LONG = 7U
,
hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::PROMO_KNIGHT = 8U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::PROMO_BISHOP = 9U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::PROMO_ROOK = 10U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::PROMO_QUEEN = 11U
,
hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::EN_PASSANT = 12U
, hoover_chess_utils::pgn_reader::MoveTypeAndPromotion::ILLEGAL = 15U
} |
| | Move type (4 bits, range: 0..15) More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PgnErrorCode : unsigned {
hoover_chess_utils::pgn_reader::PgnErrorCode::OK = 0U
, hoover_chess_utils::pgn_reader::PgnErrorCode::BAD_CHARACTER = 1U
, hoover_chess_utils::pgn_reader::PgnErrorCode::BAD_PGN_TAG
, hoover_chess_utils::pgn_reader::PgnErrorCode::UNEXPECTED_MOVE_NUM
,
hoover_chess_utils::pgn_reader::PgnErrorCode::UNEXPECTED_TOKEN
, hoover_chess_utils::pgn_reader::PgnErrorCode::BAD_FEN
, hoover_chess_utils::pgn_reader::PgnErrorCode::ILLEGAL_MOVE
, hoover_chess_utils::pgn_reader::PgnErrorCode::AMBIGUOUS_MOVE
,
hoover_chess_utils::pgn_reader::PgnErrorCode::UNIMPLEMENTED
, hoover_chess_utils::pgn_reader::PgnErrorCode::INTERNAL_ERROR
} |
| | Error code. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PgnResult : std::uint_fast8_t { hoover_chess_utils::pgn_reader::PgnResult::WHITE_WIN
, hoover_chess_utils::pgn_reader::PgnResult::BLACK_WIN
, hoover_chess_utils::pgn_reader::PgnResult::DRAW
, hoover_chess_utils::pgn_reader::PgnResult::UNKNOWN
} |
| | Game result. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PgnReaderOnErrorAction { hoover_chess_utils::pgn_reader::PgnReaderOnErrorAction::Abort
, hoover_chess_utils::pgn_reader::PgnReaderOnErrorAction::ContinueFromNextGame
} |
| | Action for recoverable PGN reader error. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::PgnReaderActionClass : unsigned int {
hoover_chess_utils::pgn_reader::PgnReaderActionClass::PgnTag = 0U
, hoover_chess_utils::pgn_reader::PgnReaderActionClass::Move
, hoover_chess_utils::pgn_reader::PgnReaderActionClass::NAG
, hoover_chess_utils::pgn_reader::PgnReaderActionClass::Variation
,
hoover_chess_utils::pgn_reader::PgnReaderActionClass::Comment
} |
| | PGN reader filterable action classes. More...
|
| |
| enum class | hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding {
hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_KING_NOT_IN_TURN = 0U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_BISHOP = 1U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_ROOK_CANNOT_CASTLE = 2U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_QUEEN = 3U
,
hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_KNIGHT = 4U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_PAWN = 5U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_ROOK_CAN_CASTLE = 6U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::WHITE_KING_IN_TURN = 7U
,
hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::EP_PAWN = 8U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_BISHOP = 9U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_ROOK_CANNOT_CASTLE = 10U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_QUEEN = 11U
,
hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_KNIGHT = 12U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_PAWN = 13U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_ROOK_CAN_CASTLE = 14U
, hoover_chess_utils::pgn_reader::CompressedPosition_PieceEncoding::BLACK_KING = 15U
} |
| | Compressed piece encoding for fixed-length compressed position. More...
|
| |
MiniString containing a FEN.
For maximum size bound, the following template was used:
xxxxxxxx/xxxxxxxx/xxxxxxxx/xxxxxxxx/xxxxxxxx/xxxxxxxx/xxxxxxxx/xxxxxxxx w KQkq ep 255 4294967295
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
0 1 2 3 4 5 6 7 8 9
which is 96 bytes. Technically, this board could not have EP, but that can be arranged with individual empty squares.
Named square.
Squares are ordered by rank (ascending) and file (ascending). Square::NONE comes after all valid squares. That is:
Square::A1 < Square::B1 < ... < Square::H1 < Square::A2 < ... < Square::H8 < Square::NONE
The enumeration value of a square is the same as its index on an array board.
In bit-board illustrations, the squares are represented as follows:
| A8 | B8 | C8 | D8 | E8 | F8 | G8 | H8 |
| A7 | B7 | C7 | D7 | E7 | F7 | G7 | H7 |
| A6 | B6 | C6 | D6 | E6 | F6 | G6 | H6 |
| A5 | B5 | C5 | D5 | E5 | F5 | G5 | H5 |
| A4 | B4 | C4 | D4 | E4 | F4 | G4 | H4 |
| A3 | B3 | C3 | D3 | E3 | F3 | G3 | H3 |
| A2 | B2 | C2 | D2 | E2 | F2 | G2 | H2 |
| A1 | B1 | C1 | D1 | E1 | F1 | G1 | H1 |
- See also
isValidValue(Square), isValidSquare()
-
makeSquare(), rowOf(Square), columnOf(Square)
-
getSquareForIndex(), getIndexOfSquare()
-
RowColumn
| Enumerator |
|---|
| A1 | row 0, column 0
|
| B1 | row 0, column 1
|
| C1 | row 0, column 2
|
| D1 | row 0, column 3
|
| E1 | row 0, column 4
|
| F1 | row 0, column 5
|
| G1 | row 0, column 6
|
| H1 | row 0, column 7
|
| A2 | row 1, column 0
|
| B2 | row 1, column 1
|
| C2 | row 1, column 2
|
| D2 | row 1, column 3
|
| E2 | row 1, column 4
|
| F2 | row 1, column 5
|
| G2 | row 1, column 6
|
| H2 | row 1, column 7
|
| A3 | row 2, column 0
|
| B3 | row 2, column 1
|
| C3 | row 2, column 2
|
| D3 | row 2, column 3
|
| E3 | row 2, column 4
|
| F3 | row 2, column 5
|
| G3 | row 2, column 6
|
| H3 | row 2, column 7
|
| A4 | row 3, column 0
|
| B4 | row 3, column 1
|
| C4 | row 3, column 2
|
| D4 | row 3, column 3
|
| E4 | row 3, column 4
|
| F4 | row 3, column 5
|
| G4 | row 3, column 6
|
| H4 | row 3, column 7
|
| A5 | row 4, column 0
|
| B5 | row 4, column 1
|
| C5 | row 4, column 2
|
| D5 | row 4, column 3
|
| E5 | row 4, column 4
|
| F5 | row 4, column 5
|
| G5 | row 4, column 6
|
| H5 | row 4, column 7
|
| A6 | row 5, column 0
|
| B6 | row 5, column 1
|
| C6 | row 5, column 2
|
| D6 | row 5, column 3
|
| E6 | row 5, column 4
|
| F6 | row 5, column 5
|
| G6 | row 5, column 6
|
| H6 | row 5, column 7
|
| A7 | row 6, column 0
|
| B7 | row 6, column 1
|
| C7 | row 6, column 2
|
| D7 | row 6, column 3
|
| E7 | row 6, column 4
|
| F7 | row 6, column 5
|
| G7 | row 6, column 6
|
| H7 | row 6, column 7
|
| A8 | row 7, column 0
|
| B8 | row 7, column 1
|
| C8 | row 7, column 2
|
| D8 | row 7, column 3
|
| E8 | row 7, column 4
|
| F8 | row 7, column 5
|
| G8 | row 7, column 6
|
| H8 | row 7, column 7
|
| NONE | Token for 'no' square.
|