void CityUpdater::run(){ currentTimer.start(); Timer<CityUpdater> generateTimer(this, 1), advanceTimer(this, 0), buildingTimer(this, 4), roadBlockTimer(this, 20), payTimer(this, 48), cityTimer(this); generateTimer.setFunc(CityUpdater::runGenerateVisitors); advanceTimer.setFunc(CityUpdater::runMakeVisitorsAdvance); buildingTimer.setFunc(CityUpdater::runUpdateBuidlings); payTimer.setFunc(CityUpdater::runMakeOwnersPay); cityTimer.setFunc(CityUpdater::runUpdateCity); roadBlockTimer.setFunc(CityUpdater::runUpdateRoadBlocks); generateTimer.start();advanceTimer.start();buildingTimer.start();roadBlockTimer.start();payTimer.start();/*cityTimer.start();*/ currentTimer.join(); generateTimer.cancel();advanceTimer.cancel();buildingTimer.cancel();roadBlockTimer.cancel();payTimer.cancel();/*cityTimer.join();*/ Player* player; Player* winner = nullptr; for(int i = 0;i<8;i++){ player = (*playerVectorPtr)[i]; if(winner == nullptr){ winner = player; }else if(player != nullptr){ winner = player->getMoney() > winner->getMoney() ? player : winner; } } std::cout<<"Winner is "<<(winner != nullptr ? winner->getNickName() : "None")<<std::endl; }
void Tetris::manageFallen() { field->fallingToLaying(); games_sound_play ("land"); int levelBefore = scoreFrame->getLevel(); int levelAfter = scoreFrame->scoreLines (field->checkFullLines()); if (levelAfter != levelBefore) games_sound_play ("gnometris"); if ((levelBefore != levelAfter) || fastFall) generateTimer(levelAfter); if (field->isFieldEmpty ()) scoreFrame->scoreLastLineBonus (); generate(); }