8#if !defined(MOVELIST_H)
52 friend std::ostream& operator<<(std::ostream& os,
bMoveList const& ml);
55 void addMoveAndSetScore(
bBoard const& b,
bMove const& m,
bool const check);
57 bool m_isGenerated = false;
58 bool m_isSorted = false;
movenum_t addWhiteCaptureIfValid(bBoard const &b, case_t const &cf, case_t const &to)
movenum_t addBlackPromotionIfValid(bBoard const &b, bMove const &m)
Only add move to movelist if valid.
movenum_t setScoreOfMove(movenum_t const moveid, bScore const score)
Store score of move.
movenum_t addWhitePromotionIfValid(bBoard const &b, bMove const &m)
Only add move to movelist if valid.
movenum_t addBlackCaptureIfValid(bBoard const &b, case_t const &cf, case_t const &to)
movenum_t getNumberOfQSMoves() const
return number of non silent moves
movenum_t getNumberOfMoves() const
bMoveList(bMoveList &&) noexcept
movenum_t addBlackMoveIfValid(bBoard const &b, bMove const &m)
Only add move to movelist if valid.
movenum_t addWhiteMoveIfValid(bBoard const &b, bMove const &m)
Only add move to movelist if valid.
movenum_t generateMoves(bBoard const &b)
generate moves if not yet generated
bool atLeastOneMovePossible(bBoard const &b) const
see if at least one move can be played e.g.
basicmove_t getMoveT(movenum_t const moveid) const
std::vector< bMove > movelist_t