anchor.diff:    end;
   end;
   
  +{ TKMRunnerGA_Farm }
  +procedure TKMRunnerGA_Farm.InitGAParameters();
  +begin
  +  inherited;
  +  f_SIM_SimulationTimeInMin   := 60;
  +  f_SIM_NumberOfMaps          := 1;
  +  f_GA_POPULATION_CNT         := 20;
  +  f_GA_GENE_CNT               := 12;
  +end;
  +
  +
  +procedure TKMRunnerGA_Farm.SetParameters(aIdv: TGAIndividual; aLogIt: Boolean = False);
  +var
  +  K: Integer;
  +begin
  +  K := 0;
  +
  +  GA_PLANNER_PlanFarmFields_CanBuild       :=   Round(aIdv.Gene[Incr(K)] * 75);
  +  GA_PLANNER_PlanFarmFields_Dist           :=   Round(aIdv.Gene[Incr(K)] * 75);
  +  GA_PLANNER_PlanFarmFields_ExistField     :=   Round(aIdv.Gene[Incr(K)] * 75);
  +  GA_PLANNER_PlanFarmFields_MaxFields      :=   12 + Round(aIdv.Gene[Incr(K)] * 8);
  +
  +  GA_PLANNER_FindPlaceForHouse_RouteFarm     := -2+aIdv.Gene[Incr(K)] *   1 * 4; // 0-255
  +  GA_PLANNER_FindPlaceForHouse_FlatAreaFarm  := -5+aIdv.Gene[Incr(K)] *   3 * 4; // 0-82
  +  GA_PLANNER_FindPlaceForHouse_HouseDistFarm := aIdv.Gene[Incr(K)] *  10 * 1; // 3-100+
  +  GA_PLANNER_FindPlaceForHouse_CityCenterFarm:= aIdv.Gene[Incr(K)] *  10 * 5; // 3-100+;
  +
  +  GA_PLANNER_FindPlaceForQuary_Obstacle	  := aIdv.Gene[Incr(K)] * 50;
  +  GA_PLANNER_FindPlaceForQuary_DistCity	  := aIdv.Gene[Incr(K)] * 50;
  +  GA_PLANNER_FindPlaceForQuary_DistStone	:= aIdv.Gene[Incr(K)] * 50;
  +  GA_PLANNER_FindPlaceForQuary_SnapCrit	  := aIdv.Gene[Incr(K)] * 50;
  +
  +  if aLogIt then
  +  begin
  +    fLogPar.AddTime('GA_PLANNER_PlanFarmFields_CanBuild   : Word = ' + IntToStr( GA_PLANNER_PlanFarmFields_CanBuild   ) + ';');
  +    fLogPar.AddTime('GA_PLANNER_PlanFarmFields_Dist       : Word = ' + IntToStr( GA_PLANNER_PlanFarmFields_Dist       ) + ';');
  +    fLogPar.AddTime('GA_PLANNER_PlanFarmFields_ExistField : Word = ' + IntToStr( GA_PLANNER_PlanFarmFields_ExistField ) + ';');
  +    fLogPar.AddTime('GA_PLANNER_PlanFarmFields_MaxFields  : Word = ' + IntToStr( GA_PLANNER_PlanFarmFields_MaxFields  ) + ';');
  +  end;
  +end;
  +
  +
  +{ TKMRunnerGA_Quarry }
  +procedure TKMRunnerGA_Quarry.InitGAParameters();
  +begin
  +  inherited;
  +  f_SIM_SimulationTimeInMin   := 60;
  +  f_SIM_NumberOfMaps          := 10;
  +  f_GA_POPULATION_CNT         := 5;
  +  f_GA_GENE_CNT               := 4;
  +end;
  +
  +
  +procedure TKMRunnerGA_Quarry.SetParameters(aIdv: TGAIndividual; aLogIt: Boolean = False);
  +var
  +  K: Integer;
  +begin
  +  K := 0;
  +
  +  GA_PLANNER_FindPlaceForQuary_Obstacle	  := aIdv.Gene[Incr(K)] * 50;
  +  GA_PLANNER_FindPlaceForQuary_DistCity	  := aIdv.Gene[Incr(K)] * 50;
  +  GA_PLANNER_FindPlaceForQuary_DistStone	:= aIdv.Gene[Incr(K)] * 50;
  +  GA_PLANNER_FindPlaceForQuary_SnapCrit	  := aIdv.Gene[Incr(K)] * 50;
  +
  +  if aLogIt then
  +  begin
  +    fLogPar.AddTime('GA_PLANNER_FindPlaceForQuary_Obstacle  : Single = ' + FormatFloat( '0.###########################', GA_PLANNER_FindPlaceForQuary_Obstacle  ) + ';');
  +    fLogPar.AddTime('GA_PLANNER_FindPlaceForQuary_DistCity  : Single = ' + FormatFloat( '0.###########################', GA_PLANNER_FindPlaceForQuary_DistCity  ) + ';');
  +    fLogPar.AddTime('GA_PLANNER_FindPlaceForQuary_DistStone : Single = ' + FormatFloat( '0.###########################', GA_PLANNER_FindPlaceForQuary_DistStone ) + ';');
  +    fLogPar.AddTime('GA_PLANNER_FindPlaceForQuary_SnapCrit  : Single = ' + FormatFloat( '0.###########################', GA_PLANNER_FindPlaceForQuary_SnapCrit  ) + ';');
  +  end;
  +end;
  +
   
   { TKMRunnerGA_CityRoadPlanner }
   procedure TKMRunnerGA_CityRoadPlanner.InitGAParameters();
  
positive.code: 
  
  
  
  
  
  
  procedure TKMRunnerStone.SetUp;
  begin
    inherited;
  
negative.code:   RegisterRunner(TKMRunnerGA_TestParRun);
    RegisterRunner(TKMRunnerGA_HandLogistics);
    RegisterRunner(TKMRunnerGA_CityRoadPlanner);
    RegisterRunner(TKMRunnerGA_Farm);
    RegisterRunner(TKMRunnerGA_Quarry);
    RegisterRunner(TKMRunnerGA_Forest);
    RegisterRunner(TKMRunnerGA_CityBuilder);
    RegisterRunner(TKMRunnerGA_CityPlanner);
    RegisterRunner(TKMRunnerFindBugs);
    RegisterRunner(TKMRunnerStone);
    RegisterRunner(TKMRunnerFight95);
    RegisterRunner(TKMRunnerAIBuild);
  