本文整理汇总了C++中Position::GetThisThread方法的典型用法代码示例。如果您正苦于以下问题:C++ Position::GetThisThread方法的具体用法?C++ Position::GetThisThread怎么用?C++ Position::GetThisThread使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Position
的用法示例。
在下文中一共展示了Position::GetThisThread方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GoToTheAdventure_new
//*
ScoreIndex NodetypeRoot::GoToTheAdventure_new(
Rucksack& rucksack,
Position& pos,
Flashlight* pFlashlight,//サーチスタック
ScoreIndex alpha,
ScoreIndex beta,
const Depth depth,
const bool cutNode
) const {
assert(-ScoreInfinite <= alpha && alpha < beta && beta <= ScoreInfinite);
assert(Depth0 < depth);
// 途中で goto を使用している為、先に全部の変数を定義しておいた方が安全。
Move movesSearched[64];
StateInfo st;
const TTEntry* pTtEntry = nullptr;//(^q^)トランスポジション・テーブル・エントリー☆?
SplitedNode* pSplitedNode = nullptr;//(^q^)
Key posKey;
Move ttMove;
Move move;
Move excludedMove;
Move bestMove;
Move threatMove;
Depth newDepth;
Depth extension;
ScoreIndex bestScore;
ScoreIndex score;
ScoreIndex ttScore;
ScoreIndex eval;
bool inCheck;
bool givesCheck;
bool isPVMove;
bool singularExtensionNode;
bool captureOrPawnPromotion;
bool dangerous;
bool doFullDepthSearch;
int moveCount;
int playedMoveCount;
// step1
// initialize node
Military* pThisThread = pos.GetThisThread();
moveCount = playedMoveCount = 0;
inCheck = pos.InCheck();
//bool isGotoSplitPointStart = false;
this->DoStep1b(
bestScore,
&pFlashlight,
threatMove,
bestMove
);
this->DoStep1c(
&pThisThread,
pFlashlight
);
//bool isReturnWithScore = false;
//ScoreIndex returnScore = ScoreIndex::ScoreNone;
pos.SetNodesSearched(pos.GetNodesSearched() + 1);
// step4
this->DoStep4(
excludedMove,
&pFlashlight,
posKey,
pos,
&pTtEntry,//セットされる☆
rucksack,
ttScore
);
this->DoStep4x(
ttMove,
rucksack,
pTtEntry,
pos
);
// step5
bool isGotoIidStart = false;//NonPVのとき使う☆
this->DoStep5(
isGotoIidStart,
rucksack,
eval,
&pFlashlight,
pos,
inCheck,
pTtEntry,
ttScore,
posKey,
move
);
/*
if (isGotoIidStart) {
goto iid_start;
//.........这里部分代码省略.........