示例#1
0
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;
        }
    }
    
}
示例#2
0
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);
        }
    }
}