40#pragma GCC diagnostic push
41#pragma GCC diagnostic ignored "-Weffc++"
56 m_whitePieces = b.m_whitePieces;
57 m_blackPieces = b.m_blackPieces;
58 m_variation = b.m_variation;
59 m_previousmoves = b.m_previousmoves;
69 {
return static_cast<bGameStage>(m_boardData.s_boardData.boardFlags & 0x0F); }
77 {
return m_boardData.s_boardData.boardFlags ^ 0x80; }
79 {
return m_boardData.s_boardData.boardFlags & 0x80; }
81 { m_boardData.s_boardData.boardFlags &= ~(0x80); }
83 { m_boardData.s_boardData.boardFlags |= 0x80; }
88 {
return m_boardData.s_boardData.moveplayed; }
90 { m_boardData.s_boardData.moveplayed = 0; }
92 { m_boardData.s_boardData.moveplayed = bmt; }
95 {
return m_previousmoves; }
97 { m_previousmoves = v; }
99 {
return m_variation; }
101 { m_variation = {}; }
106 operator std::string()
const;
117 inline void setGameStage(
bGameStage const stage)
118 { m_boardData.s_boardData.boardFlags
119 =
static_cast<uint8_t
>((m_boardData.s_boardData.boardFlags & 0xF0)
120 | (
static_cast<uint8_t
>(stage) & 0x0F));
134#pragma GCC diagnostic pop
union boardInfo boardInfo_t
union boardData boardData_t
std::vector< std::string > movesequence_t
std::array< caselist_t,tStatPiece::STAT_SIZE > piecepostbox_t
bBasicBoard & operator=(bBasicBoard const &bb)
void setNeedCalcMinorPieces()
friend class PosEvalPositionalBoard
void invertColours()
invert colours update kingpos, update colour to move, castle rights, ...
bBoard & operator=(bBoard const &b)
void calcMinorPieces(bool const bForceRecalc)
Recalculate minor pieces, used for evaluation and end of game condition in case of less than 5 pieces...
friend class bPositionEvaluation
friend std::ostream & operator<<(std::ostream &os, bBoard const &bd)
print board
void setVariation(bBoard const &chldbrd)
constexpr bool needCalcMinorPieces() const
boardInfo_t applyMove(bMove const &m) override
modification of board move is kept on previous board newboard does not have move stored and has flag ...
void clearNeedCalcMinorPieces()
constexpr bool noNeedCalcMinorPieces() const
bBoard(bBoard const &b)
Copy board with limited board data, no board history.
void setMove(bmove_t const bmt)
movesequence_t const & getPreviousMoves() const
movesequence_t const & getVariation() const
constexpr bmove_t getMove() const
std::string getGameStageName() const
void calcGameStage()
calculate stage of game to assist in evaluation
void setPreviousMoves(movesequence_t const &v)
constexpr bGameStage getGameStage() const
bBoard & operator=(bBoard &&b)=delete
case_t capturedcase
0b00001111 ^ 0 = NeedCalcMinorPieces (0x80 - 128) ^ unused (0x40 - 64) ^ unused (0x20 - 32) ^ unused ...
struct boardData::@346170310372102045372277064032203362166237127134 s_boardData
boardData(uint64_t uiValue)