当前位置: 首页>>代码示例>>C++>>正文


C++ Position::GetOccupiedBB方法代码示例

本文整理汇总了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)
			)
		;
}
开发者ID:muzudho,项目名称:Kifuwarapery,代码行数:13,代码来源:n351_140_direcDiagNESW.cpp

示例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;
}
开发者ID:muzudho,项目名称:Kifuwarapery,代码行数:17,代码来源:n600_500_book.cpp


注:本文中的Position::GetOccupiedBB方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。