public override string Solve(List <Pattern> patterns)
        {
            // Run every pattern through the network and get a list of the outputs
            patterns.ForEach(p => p.Outputs = sann.FeedForward(p.Inputs.Scale(0.02, 0.98)));

            // Convert every output to a character in the solution
            return(patterns.Select(p => GetOutputCharacter(p)).Aggregate((c, n) => c + n));
        }