anchor.diff:  end;
   
   
  -
  -
  +{ TKMBalancedResources }
  +constructor TKMBalancedResources.Create();
  +begin
  +  fResCnt := 0;
  +end;
  +
  +
  +destructor TKMBalancedResources.Destroy();
  +begin
  +
  +end;
  +
  +
  +procedure TKMBalancedResources.ClearArray();
  +begin
  +  SetLength(fResources, 0);
  +end;
  +
  +
  +procedure TKMBalancedResources.AddResource(aOwner, aResource, aMinesCnt: Byte; aQuantity: Integer; aPoints: TKMPointArray);
  +begin
  +  if (fResCnt >= Length(fResources)) then
  +    SetLength(fResources, fResCnt + 24);
  +  with Resources[fResCnt] do
  +  begin
  +    InitOwner := aOwner;
  +    //Owners[0] := aOwner;
  +    Resource := aResource;
  +    MinesCnt := aMinesCnt;
  +    Quantity := aQuantity;
  +    Points := aPoints;
  +  end;
  +  fResCnt := fResCnt + 1;
  +end;
   
   end.
  
positive.code:     procedure FloodFillWithQueue(var aPointArr: TKMPointArray; var aCnt_FINAL, aCnt_ACTUAL, aRESOURCE: Integer; const aProbability, aPROB_REDUCER: Single; var aPoints: TKMPointArray);
    end;
  
  
  implementation
  uses
    KM_RandomMapGenerator;
  
  
  { TKMRandomNumberGenerator }
  
negative.code: begin
    NextSeed();
    Result := fSeed * 0.000000000465661287307739; // Seed / High(Integer) = Seed * (1/2^31) = Seed * 0.000000000465661287307739 -> faster
    if (Result < 0) then
       Result := -Result;
  end;
  
  