40#pragma GCC diagnostic push
41#pragma GCC diagnostic ignored "-Weffc++"
60 {
return static_cast<bGameStage>(m_boardData.s_boardData.boardFlags & 0x0F); }
68 {
return m_boardData.s_boardData.boardFlags ^ 0x80; }
70 {
return m_boardData.s_boardData.boardFlags & 0x80; }
72 { m_boardData.s_boardData.boardFlags &= ~(0x80); }
74 { m_boardData.s_boardData.boardFlags |= 0x80; }
79 {
return m_boardData.s_boardData.moveplayed; }
81 { m_boardData.s_boardData.moveplayed = 0; }
83 { m_boardData.s_boardData.moveplayed = bmt; }
86 {
return m_previousmoves; }
88 { m_previousmoves = v; }
90 {
return m_variation; }
97 operator std::string()
const;
108 inline void setGameStage(
bGameStage const stage)
109 { m_boardData.s_boardData.boardFlags
110 =
static_cast<uint8_t
>((m_boardData.s_boardData.boardFlags & 0xF0)
111 | (
static_cast<uint8_t
>(stage) & 0x0F));
125#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
void setNeedCalcMinorPieces()
friend class PosEvalPositionalBoard
bBoard & operator=(bBoard const &b)=delete
void invertColours()
invert colours update kingpos, update colour to move, castle rights, ...
friend class bPositionEvaluation
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 calcMinorPieces(bool const bForceRecalc=false)
Recalculate minor pieces, used for evaluation and end of game condition in case of less than 5 pieces...
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
friend std::ostream & operator<<(std::ostream &os, bBoard const &dt)
print board
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 ...
boardData(uint64_t uiValue)
struct boardData::@237243122373301271065257317021373046377133261360 s_boardData