int main2() { // Start graphics thread Graphics graphics; graphics.startThread(); Sleep(1000); // Arduino setup EvolutionaryAlgorithm ea; int counter = 0; bool loop = true; while (loop) { // Print population std::vector<Individual> pop = ea.children; std::cout << pop.size() << std::endl; //Vecotr of scores std::vector<double> score; // For each population for (unsigned i = 0; i < pop.size(); i++) { Individual ind = pop[i]; std::cout << "----" << "\n"; //Get stop position from camera posMutex.lock(); Vec2 startPos = currentPosition; posMutex.unlock(); graphics.setData(ind.genotype); //Calculate score double individualScore = (double)getVirtualScore2(ind.genotype); std::cout << "Score: " << individualScore; if (individualScore > 90.0) { loop = false; graphics.saveAsImage("finished"); } counter++; graphics.saveAsImage(std::to_string(counter)); score.push_back(individualScore); } //Send score to algoritm ea.evolutionaryLoop(score); } // Shutdown the software, wait for threads std::cout << "Shutting down..." << std::endl; cameraThreadRunning = false; graphics.join(); return 0; }