Exemple #1
0
        public IEnumerable <ChessMove> GetAvailableLegalMoves(IReadOnlyChessPiece chessPiece)
        {
            var filteredMoves = new List <ChessMove>();

            foreach (var chessMove in movement.GetAvailableMoves(chessPiece))
            {
                chessBoard.Move(chessMove);
                if (!checkDetector.IsChecked(chessPiece.Color))
                {
                    filteredMoves.Add(chessMove);
                }
                chessBoard.ReverseLastMove();
            }
            return(filteredMoves);
        }