HooverChessUtils_PgnReader 0.9.0
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations
chessboard.h File Reference
#include "pgnreader-types.h"
#include "chessboard-types.h"
#include "chessboard-types-squareset.h"
#include <array>
#include <cassert>
#include <cinttypes>
#include <type_traits>
Include dependency graph for chessboard.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hoover_chess_utils::pgn_reader::BitBoard
 Board representation using SquareSets (bit boards) More...
 
class  hoover_chess_utils::pgn_reader::Move
 A legal move. Important: see the note! More...
 
class  hoover_chess_utils::pgn_reader::CompactMove
 Compact representation of Move More...
 
class  hoover_chess_utils::pgn_reader::ChessBoard
 The chessboard. More...
 
struct  hoover_chess_utils::pgn_reader::MoveGenFunctions
 Move generator functions. More...
 

Namespaces

namespace  hoover_chess_utils
 
namespace  hoover_chess_utils::pgn_reader
 

Typedefs

using hoover_chess_utils::pgn_reader::ArrayBoard = std::array< PieceAndColorCompact, 64U >
 Board representation using an array.
 
using hoover_chess_utils::pgn_reader::MoveTypeAndPromotionUnderlyingType = std::uint_fast8_t
 Underlying type of MoveTypeAndPromotion
 
using hoover_chess_utils::pgn_reader::MoveList = std::array< CompactMove, 256U >
 Move list returned by ChessBoard::generateMoves().
 
using hoover_chess_utils::pgn_reader::ShortMoveList = std::array< CompactMove, 8U >
 Short move list returned by move generators for writing a SAN move. That is, when the piece type and destination square are known, and moves need to be generated to resolve the required disambiguation.
 

Enumerations

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::MoveGenType { hoover_chess_utils::pgn_reader::MoveGenType::NO_CHECK = 0U , hoover_chess_utils::pgn_reader::MoveGenType::CHECK , hoover_chess_utils::pgn_reader::MoveGenType::DOUBLE_CHECK }
 Move generator type. More...