private void ValidateSourcePosition(Position sourcePosition) { if (!Board.ThereIsAPiece(sourcePosition)) { throw new ChessException("There is no piece in source position.\n"); } if (CurrentPlayer != ((ChessPiece)Board.GetPiece(sourcePosition)).Color) { throw new ChessException("The piece chosen is not yours.\n"); } if (!Board.GetPiece(sourcePosition).IsThereAnyPossibleMove()) { throw new ChessException("There is no possible movements for this piece.\n"); } }