本文整理汇总了C++中Position::GetOccupiedBB方法的典型用法代码示例。如果您正苦于以下问题:C++ Position::GetOccupiedBB方法的具体用法?C++ Position::GetOccupiedBB怎么用?C++ Position::GetOccupiedBB使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Position
的用法示例。
在下文中一共展示了Position::GetOccupiedBB方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void DirecDiagNESW::Do2Move(Position& position, Square from, const Square ksq, const Color us) const {
const PieceTypeEvent ptEvent1(position.GetOccupiedBB(), Color::Null, ksq);
position.GetStateInfo()->m_checkersBB |=
PiecetypePrograms::m_BISHOP.GetAttacks2From(ptEvent1) &
(
us == Color::Black
?
position.GetBbOf30<Color::Black>(PieceType::N05_Bishop, PieceType::N13_Horse)
:
position.GetBbOf30<Color::White>(PieceType::N05_Bishop, PieceType::N13_Horse)
)
;
}
示例2: GetBookKey
Key Book::GetBookKey(const Position& pos) {
Key key = 0;
Bitboard bb = pos.GetOccupiedBB();
while (bb.Exists1Bit()) {
const Square sq = bb.PopFirstOneFromI9();
key ^= m_ZobPiece[pos.GetPiece(sq)][sq];
}
const Hand hand = pos.GetHand(pos.GetTurn());
for (HandPiece hp = HPawn; hp < HandPieceNum; ++hp) {
key ^= m_ZobHand[hp][hand.NumOf(hp)];
}
if (pos.GetTurn() == White) {
key ^= m_ZobTurn;
}
return key;
}