/// <summary>
        /// Copy constructor.
        /// </summary>
        public MultiAgentExperiment(MultiAgentExperiment exp)
        {
            gridCollision = exp.gridCollision;

            substrateDescriptionFilename = exp.substrateDescriptionFilename;
            adaptableANN     = exp.adaptableANN;
            modulatoryANN    = exp.modulatoryANN;
            normalizeWeights = exp.normalizeWeights;
            headingNoise     = exp.headingNoise;
            effectorNoise    = exp.effectorNoise;
            sensorNoise      = exp.sensorNoise;

            timesToRunEnvironments = exp.timesToRunEnvironments;
            evaluationTime         = exp.evaluationTime;
            initialized            = false;

            timestep        = exp.timestep;
            explanatoryText = exp.explanatoryText;

            scriptFile = exp.scriptFile;

            robotModelName = exp.robotModelName;

            fitnessFunctionName          = exp.fitnessFunctionName;
            behaviorCharacterizationName = exp.behaviorCharacterizationName;
            environmentName = exp.environmentName;


            bestGenomeSoFar = exp.bestGenomeSoFar;

            numberRobots = exp.numberRobots;

            homogeneousTeam = exp.homogeneousTeam;

            overrideDefaultSensorDensity = exp.overrideDefaultSensorDensity;
            sensorDensity = exp.sensorDensity;

            useScript = exp.useScript;

            running = exp.running;

            agentsVisible = exp.agentsVisible;
            agentsCollide = exp.agentsCollide;

            genome = exp.genome;

            multipleEnvironments = exp.multipleEnvironments;

            evolveSubstrate = exp.evolveSubstrate;

            elapsedTime = exp.elapsedTime;

            populationSize = exp.populationSize;

            overrideTeamFormation = exp.overrideTeamFormation;
            group_orientation     = exp.group_orientation;
            group_spacing         = exp.group_spacing;
            robot_heading         = exp.robot_heading;

            multibrain     = exp.multibrain;
            multiobjective = exp.multiobjective;
            robotValues    = new List <string>();
            foreach (String s in exp.robotValues)
            {
                robotValues.Add(s);
            }
        }
        /// <summary>
        /// Copy constructor. 
        /// </summary>
        public MultiAgentExperiment(MultiAgentExperiment exp)
        {
            gridCollision = exp.gridCollision;

            substrateDescriptionFilename = exp.substrateDescriptionFilename;
            adaptableANN = exp.adaptableANN;
            modulatoryANN = exp.modulatoryANN;
            normalizeWeights = exp.normalizeWeights;
            headingNoise = exp.headingNoise;
            effectorNoise = exp.effectorNoise;
            sensorNoise = exp.sensorNoise;

            timesToRunEnvironments = exp.timesToRunEnvironments;
            evaluationTime = exp.evaluationTime;
            initialized = false;

            timestep = exp.timestep;
            explanatoryText = exp.explanatoryText;

            scriptFile = exp.scriptFile;

            robotModelName = exp.robotModelName;

            fitnessFunctionName = exp.fitnessFunctionName;
            behaviorCharacterizationName = exp.behaviorCharacterizationName;
            environmentName = exp.environmentName;


            bestGenomeSoFar = exp.bestGenomeSoFar;

            numberRobots = exp.numberRobots;

            homogeneousTeam = exp.homogeneousTeam;

            overrideDefaultSensorDensity = exp.overrideDefaultSensorDensity;
            sensorDensity = exp.sensorDensity;

            useScript = exp.useScript;

            running = exp.running;

            agentsVisible = exp.agentsVisible;
            agentsCollide = exp.agentsCollide;

            genome = exp.genome;

            multipleEnvironments = exp.multipleEnvironments;

            evolveSubstrate = exp.evolveSubstrate;

            elapsedTime = exp.elapsedTime;

            populationSize = exp.populationSize;

            overrideTeamFormation = exp.overrideTeamFormation;
            group_orientation = exp.group_orientation;
            group_spacing = exp.group_spacing;
            robot_heading = exp.robot_heading;

            multibrain = exp.multibrain;
            multiobjective = exp.multiobjective;
            robotValues = new List<string>();
            foreach (String s in exp.robotValues)
                robotValues.Add(s);
        }