public static RobotKiller getDefaultRobotKiller(RobotKillerSettings killerSettings, UserOutput output)
        {
            RobotKiller killer = SimpleRobotKiller.getInstance(output);

            killer.Settings = killerSettings;
            return(killer);
        }
        private Engine wireEngine(MainSettings mainSettings, MainAppData data, RobotKiller killer, RobotBreeder breeder, Population population)
        {
            EngineSettings    engineSettings    = getEngineSettings(mainSettings);
            TimePointExecutor timePointExecutor = wireTimePointExecutor(mainSettings);

            return(EngineFactory.getDefaultEngine(engineSettings, data, timePointExecutor, killer, breeder, population));
        }
 public virtual void setSettings(EngineSettings engineSettings, TimePointExecutor timePointExecutor, MainAppData data, RobotKiller killer, RobotBreeder breeder, Population population)
 {
     this.engineSettings    = engineSettings;
     this.timePointExecutor = timePointExecutor;
     this.killer            = killer;
     this.breeder           = breeder;
     this.population        = population;
     this.data = data;
 }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("UnusedReturnValue") public java.util.List<com.alphatica.genotick.timepoint.TimePointStats> start(MainSettings mainSettings, com.alphatica.genotick.data.MainAppData data) throws IllegalAccessException
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        public virtual IList <TimePointStats> start(MainSettings mainSettings, MainAppData data)
        {
            if (!validateSettings(mainSettings))
            {
                return(null);
            }
            logSettings(mainSettings);
            RobotKiller  killer  = getRobotKiller(mainSettings);
            Mutator      mutator = getMutator(mainSettings);
            RobotBreeder breeder = wireBreeder(mainSettings, mutator);

            population = wirePopulation(mainSettings);
            Engine engine = wireEngine(mainSettings, data, killer, breeder, population);
            IList <TimePointStats> results = engine.start(output);

            showSummary(results);
            return(results);
        }