void GeneticAlgorithmProfile1::BeforeDeployment(cocos2d::Layer& _sc) { GameScene* gs = (GameScene*) &_sc; if( this->gaThreadData->GetNonGARounds() > 0 && this->gaThreadData->IsGaEnabled() == false) { int tc = pthread_create(&threadsGA[0], NULL, &GeneticAlgorithmProfile1::Algorithm, this->gaThreadData); //wait until need simulating is enabled while(!this->gaThreadData->IsGaInitialized() && this->gaThreadData->GetNonGARounds() > 0) { sleep(1); // wait for ga initialisation } } if( this->gaThreadData->IsGaEnabled() == true) { while(!this->gaThreadData->IsSimulating() && this->gaThreadData->GetNonGARounds() > 0) { sleep(1); // wait for start simulation to start } if(this->gaThreadData->IsGaEnabled() == true) { this->BackUpState(_sc); gs->GetGUI()->SetGameAlert2("DEPLOYMENT GA SIMULATING : PLEASE WAIT!!!"); gs->simulationMode = true; } } }
void GeneticAlgorithmProfile1::BeforeNextWave(cocos2d::Layer& _sc, void* args) { GameScene* gs = (GameScene*) & _sc; if( this->gaThreadData->IsGaEnabled() == true) { this->RestoreState(_sc); gs->GetGUI()->GameAlert2Toggle(); gs->simulationMode = false; this->gaThreadData->SetSimulating(false); //set the results if(args != NULL) { this->gaThreadData->SetCurrentRoundScores(((CurrentRoundScores*) args)->creepsLeftFitness, ((CurrentRoundScores*) args)->creepsLeftPercFitness); } } }