コード例 #1
0
ファイル: GoBlock.cpp プロジェクト: ernest-galbrun/fuegoia
void GoBlock::CheckConsistency() const
{
    SG_ASSERT(Stones().SubsetOf(m_bd.All(Color())));
    SgPoint anchor = Anchor();
    SG_ASSERT(m_bd.Anchor(anchor) == Anchor());
    SgPointSet stones;
    for (GoBoard::StoneIterator it(m_bd, anchor); it; ++it)
        stones.Include(*it);
    SG_ASSERT(Stones() == stones);
}
コード例 #2
0
ファイル: GoChain.cpp プロジェクト: cbordeman/gameofgo
void GoChain::GetBlocks(const GoRegionBoard* ra, 
                        SgVectorOf<GoBlock>* blocks) const
{
    SgBlackWhite color = Color();
    SgPointSet chainPts = Stones();
    for (SgVectorIteratorOf<GoBlock> it(ra->AllBlocks(color)); it; ++it)
        if (chainPts.Contains((*it)->Anchor()))
            blocks->PushBack(*it);
}
コード例 #3
0
ファイル: GoBlock.cpp プロジェクト: ernest-galbrun/fuegoia
void GoBlock::Write(std::ostream& stream) const
{
    WriteID(stream);
    stream  <<  '\n'
            << SgWritePointSet(Stones(), "Stones: ")
            << "\nhealthy: " << Healthy().Length()
            << "\nisSafe: " << SgWriteBoolean(IsSafe())
            << "\nhas1Eye: " << SgWriteBoolean(Has1Eye())
            << "\n";
}
コード例 #4
0
ファイル: StoneBoard.hpp プロジェクト: cgao3/benzene
inline BoardIterator StoneBoard::Stones(HexColor color) const
{
    return Stones(HexColorSetUtil::Only(color));
}