本文整理汇总了C++中TTEntry::getBestmove方法的典型用法代码示例。如果您正苦于以下问题:C++ TTEntry::getBestmove方法的具体用法?C++ TTEntry::getBestmove怎么用?C++ TTEntry::getBestmove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TTEntry
的用法示例。
在下文中一共展示了TTEntry::getBestmove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rateMoves
void MoveOrdering::rateMoves(std::vector<Move>& moveList, std::shared_ptr<Board> board, const unsigned int ply, const bool isSEE)
{
TTEntry* ttEntry = globalTT.probeTT(board->key, 0); // returns non nullpr if key exists and depth is greater
Move hashMove = Move();
if(ttEntry)
{
hashMove = ttEntry->getBestmove();
}
for(Move& move : moveList)
{
unsigned int score=0;
if(move==hashMove)
{
score += 100000;
}
if(move.isPromotion())
{
score += Eval::pieceTypeToValue(move.getPromotedPieceType())-Piece::PAWN_VALUE;
}
if(move.isCapture())
{
if(isSEE)
{
score += board->seeCapture(move, Utils::getOppositeColor(board->getColorToPlay()));
}
else
{
// MVV/LVA
score += Eval::pieceTypeToValue(move.getCapturedPieceType())-move.getPieceType();
}
}
if (move == myKiller1[ply])
{
score += KILLER1_BONUS;
}
if (move == myKiller2[ply])
{
score += KILLER2_BONUS;
}
move.setMoveRating(score);
}
}