anchor.diff:    end
     else
       for I := 0 to fRepairList.fHousesCount - 1 do
  -      if fRepairList.fHouses[i].House <> nil then
  +      if (fRepairList.fHouses[i].House <> nil)
  +      and(fRepairList.fHouses[I].Assigned < MAX_WORKERS[fRepairList.fHouses[i].House.HouseType]) then
         begin
           BestWorker := GetBestWorker(KMPointBelow(fRepairList.fHouses[I].House.GetEntrance));
           if BestWorker <> nil then fRepairList.GiveTask(I, BestWorker);
  
positive.code:   //2. Fieldworks
    //3. Houses
    //4. Repairs
    AssignHousePlans;
    AssignFieldworks;
    AssignHouses;
    AssignRepairs;
  end;
  
  
  
negative.code:   Result := -1;
    aBid := MaxSingle;
    for I := 0 to fHousesCount - 1 do
    if (fHouses[I].House <> nil)
    and (fHouses[I].Assigned < MAX_WORKERS[fHouses[i].House.HouseType]) then
    begin
      NewBid := KMLengthDiag(aWorker.GetPosition, fHouses[I].House.GetPosition);
      NewBid := NewBid + fHouses[I].Assigned * BID_MODIF;
  