本文整理汇总了C++中GoBoard::TheLiberty方法的典型用法代码示例。如果您正苦于以下问题:C++ GoBoard::TheLiberty方法的具体用法?C++ GoBoard::TheLiberty怎么用?C++ GoBoard::TheLiberty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GoBoard
的用法示例。
在下文中一共展示了GoBoard::TheLiberty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindLadderEscapeMoves
void GoLadderUtil::FindLadderEscapeMoves(const GoBoard& bd, SgPoint prey,
SgVector<SgPoint>& escapeMoves)
{
SG_ASSERT(bd.NumLiberties(prey) == 1);
SG_ASSERT(escapeMoves.IsEmpty());
SgPoint p = bd.TheLiberty(prey);
SgVector<SgPoint> candidates;
candidates.PushBack(p);
if (IsLadderEscapeMove(bd, prey, p))
escapeMoves.PushBack(p);
for (GoAdjBlockIterator<GoBoard> it(bd, prey, 1); it; ++it)
{
// check if prey can escape by capturing *it on p.
SgPoint p = bd.TheLiberty(*it);
if (! candidates.Contains(p))
{
candidates.PushBack(p);
if (IsLadderEscapeMove(bd, prey, p))
escapeMoves.PushBack(p);
}
}
}