72 void setCastle(uint8_t
const f,
bool const c);
136 std::array<piece_t, 64> m_fields;
161 operator std::string()
const;
203 void applyMove(
bMove const& m);
204 void applyWhiteMove(
bMove const& m);
205 void applyBlackMove(
bMove const& m);
232 std::array<caselist_t ,tStatPiece::STAT_SIZE> m_whitePieces;
233 std::array<caselist_t ,tStatPiece::STAT_SIZE> m_blackPieces;
unsigned long long hashkey_t
std::vector< std::string > movesequence_t
void setPiece(case_t const bc, piece_t const piece)
used for promotion move generation
bBasicBoard & operator=(bBasicBoard &&)=delete
piece_t getPiece(case_t const bc) const
1 for white, 2 for black
bBasicBoard & operator=(bBasicBoard const &)=delete
void setCastle(uint8_t const f)
int16_t getMoveNumber() const
void setPly50Moves(movenum50_t const p)
hashkey_t getHash() const
u_positionFlags_t makeBoardMove(column_t const oldcol, rank_t const oldrank, column_t const newcol, rank_t const newrank, piece_t const promotion)
apply move to check if in check only, board to be discarded as it will be in incomplete state,...
void setEp(case_t const e)
void movePiece(case_t const f, case_t const t, piece_t const p)
void moveBlackKing(case_t const f, case_t const t)
side_t getColourToMove() const
std::string getHashStr() const
void setPieceKU(case_t const bc, piece_t const piece)
calculate and set hash
void setHash(hashkey_t const newHash)
void clearPiece(case_t const bc)
virtual void setInCheck()
void moveWhiteKing(case_t const f, case_t const t)
case_t getBlackKingPos() const
virtual void setCapture(piece_t const p, case_t const c)
Clear castle flag if rook captured update piece counter, update hash, clear field.
movenum50_t incPly50Moves()
piece_t m_capturedpiece
4 castling bits as uints as copy ctor stumbles on bool array
piece_t setGetPiece(column_t const newcol, rank_t const newrank, piece_t const piece)
used for makeBoardMove
piece_t removePiece(column_t const newcol, rank_t const newrank)
used for makeBoardMove
void unMakeBoardMove(case_t const &cf, column_t const newcol, rank_t const newrank, u_positionFlags_t const oldFlags, piece_t const promotion)
undo makeBoardMove, restoring previous situation
case_t getWhiteKingPos() const
void swapPiece(case_t const t, piece_t const op, piece_t const np)
void calcHash()
Set hash based on board position, also calc pieces Byte 0: bits 4-6 capture count (masked) bit 7 play...
movenum50_t getPly50Moves() const
piece_t getPieceCtl(column_t const iColumn, rank_t const iRank) const
retrieve piece with bounds checking, return field empty in case of out of bounds
void clearCastle(uint8_t const f)
bool isFieldEmpty(case_t const bc) const
void setPly(plynum_t const p)
void setCapture(piece_t const p, case_t const c) override
set non-silent flag, store captured piece and case (for undo)
void setCastleDoneWhite(bool const c)
bGameStage getStage() const
void invertColours()
invert colours update kingpos, update colour to move, castle rights, ...
bMove const & getMove(movenum_t const moveid) const
void setVariation(bBoard const &chldbrd)
bBoard & operator=(bBoard const &)=delete
uint8_t m_castledoneWhite
bool isNonSilent() const
calculate gamestage
bMoveList & getMoveListRef()
return reference to movelist
bBoard & operator=(bBoard &&)=delete
bool castleDoneWhite() const
-1 black to move, 1 white to move
void setBoardEvaluation(bScore const s)
movesequence_t const & getPreviousMoves() const
void setCastleDoneBlack(bool const c)
bool castleDoneBlack() const
movesequence_t const & getVariation() const
friend std::ostream & operator<<(std::ostream &os, bBoard const &dt)
print board
bScore minimizing() const
void calcGameStage()
calculate pieces
bScore getBoardEvaluation() const
uint8_t m_castledoneBlack
void setPreviousMoves(movesequence_t const &v)
bool atLeastOneMovePossible() const
see if at least one move can be played e.g.
basicmove_t const & getMovePlayed() const
constexpr bScore SCORE_UNDEFINED
uint8_t capturedpiece
4 castling bits, plus incheck flag and capture move