NeuralNetwork::NeuralNetwork(const Genome& genome, bool shouldMutate): parameters(genome.GetTrainingParameters()), genome(genome), inputNeurons(genome.GetTrainingParameters().numberOfInputs), outputNeurons(genome.GetTrainingParameters().numberOfOutputs) { if (shouldMutate) { MutateGenesAndBuildNetwork(); } else { BuildNetworkFromGenes(); } }