本文整理汇总了C#中Portfish.Position.startpos_ply_counter方法的典型用法代码示例。如果您正苦于以下问题:C# Position.startpos_ply_counter方法的具体用法?C# Position.startpos_ply_counter怎么用?C# Position.startpos_ply_counter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Portfish.Position
的用法示例。
在下文中一共展示了Position.startpos_ply_counter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: flip
/// flip() flips position with the white and black sides reversed. This
/// is only useful for debugging especially for finding evaluation symmetry bugs.
internal void flip()
{
// Make a copy of current position before to start changing
Position pos = new Position(this);
clear();
sideToMove = pos.sideToMove ^ 1;
thisThread = pos.this_thread();
nodes = pos.nodes;
chess960 = pos.chess960;
startPosPly = pos.startpos_ply_counter();
for (Square s = SquareC.SQ_A1; s <= SquareC.SQ_H8; s++)
if (!pos.is_empty(s))
put_piece((pos.piece_on(s) ^ 8), Utils.flip_S(s));
if (pos.can_castle_CR(CastleRightC.WHITE_OO) != 0)
set_castle_right(ColorC.BLACK, Utils.flip_S(pos.castle_rook_square(ColorC.WHITE, CastlingSideC.KING_SIDE)));
if (pos.can_castle_CR(CastleRightC.WHITE_OOO) != 0)
set_castle_right(ColorC.BLACK, Utils.flip_S(pos.castle_rook_square(ColorC.WHITE, CastlingSideC.QUEEN_SIDE)));
if (pos.can_castle_CR(CastleRightC.BLACK_OO) != 0)
set_castle_right(ColorC.WHITE, Utils.flip_S(pos.castle_rook_square(ColorC.BLACK, CastlingSideC.KING_SIDE)));
if (pos.can_castle_CR(CastleRightC.BLACK_OOO) != 0)
set_castle_right(ColorC.WHITE, Utils.flip_S(pos.castle_rook_square(ColorC.BLACK, CastlingSideC.QUEEN_SIDE)));
if (pos.st.epSquare != SquareC.SQ_NONE)
st.epSquare = Utils.flip_S(pos.st.epSquare);
// Checkers
st.checkersBB = attackers_to(king_square(sideToMove)) & pieces_C(Utils.flip_C(sideToMove));
// Hash keys
st.key = compute_key();
st.pawnKey = compute_pawn_key();
st.materialKey = compute_material_key();
// Incremental scores
st.psqScore = compute_psq_score();
// Material
st.npMaterialWHITE = compute_non_pawn_material(ColorC.WHITE);
st.npMaterialBLACK = compute_non_pawn_material(ColorC.BLACK);
Debug.Assert(pos_is_ok());
}