Пример #1
0
        private IEnumerable<Move> GetMoves(Bitboard b, int offsetFrom)
        {
            foreach (var to in b.Squares)
            {
                Square from = to - offsetFrom;
                b = b.Except(to);
                if (to >= 56)
                {
                    yield return new Move(from, to, MoveTypes.PawnToQueenPromotion);
                    yield return new Move(from, to, MoveTypes.PawnToRookPromotion);
                    yield return new Move(from, to, MoveTypes.PawnToBishopPromotion);
                    yield return new Move(from, to, MoveTypes.PawnToKnightPromotion);

                }
                else
                {
                    yield return new Move(from, to);
                }
            }
        }