void CPFA_loop_functions::setScore(double s)
{
  score = s;
  if (score >= FoodItemCount) 
    {
      PostExperiment();
    }
}
bool CPFA_loop_functions::IsExperimentFinished() {
  bool isFinished = false;

  if(FoodList.size() == 0 || GetSpace().GetSimulationClock() >= MaxSimTime) {
    isFinished = true;
  }

  if(isFinished == true && MaxSimCounter > 1) {
    size_t newSimCounter = SimCounter + 1;
    size_t newMaxSimCounter = MaxSimCounter - 1;

    PostExperiment();
    Reset();

    SimCounter    = newSimCounter;
    MaxSimCounter = newMaxSimCounter;
    isFinished    = false;
  }

  return isFinished;
}
/*****
 * An experiment is considered finished if all food items are collected and all
 * iAnts have returned their food to the nest. ARGoS also keeps track of the
 * time limit in the XML file and will stop the experiment at that time limit.
 *****/
bool DSA_loop_functions::IsExperimentFinished() {
    bool isFinished = false;

    if(FoodList.size() == 0 || SimTime >= MaxSimTime) {
        isFinished = true;
    }

    if(isFinished == true && MaxSimCounter > 1) {
        size_t newSimCounter = SimCounter + 1;
        size_t newMaxSimCounter = MaxSimCounter - 1;

        // LOG << endl << "FINISHED RUN: " << SimCounter << endl;

        PostExperiment();
        Reset();

        SimCounter    = newSimCounter;
        MaxSimCounter = newMaxSimCounter;
        isFinished         = false;
    }

    return isFinished;
}
/*****
 * An experiment is considered finished if all food items are collected and all
 * iAnts have returned their food to the nest. ARGoS also keeps track of the
 * time limit in the XML file and will stop the experiment at that time limit.
 *****/
bool iAnt_loop_functions::IsExperimentFinished() {
    bool isFinished = false;

    if(data.FoodList.size() == 0 || data.SimTime >= data.MaxSimTime) {
        isFinished = true;
    }

    if(isFinished == true && data.MaxSimCounter > 1) {
        size_t newSimCounter = data.SimCounter + 1;
        size_t newMaxSimCounter = data.MaxSimCounter - 1;

        // LOG << endl << "FINISHED RUN: " << data.SimCounter << endl;

        PostExperiment();
        Reset();

        data.SimCounter    = newSimCounter;
        data.MaxSimCounter = newMaxSimCounter;
        isFinished         = false;
    }

    return isFinished;
}