void ScorerManager::evaluateGlobalReflectionSymmAuto() { ///////////////// pre-condition emit( message("Evaluate global symmetry auto starts: ") ); if ( !isGlobalReflectionSymmParsed() ) { emit( message("Parse global symmetry first! ") ); return; } ///////////////// compute QVector<double> symmScore = evaluateGlobalReflectionSymm(this->scheduler_->allGraphs); QString headline = "is use source center: "; if ( isUseSourceCenter_) { headline.append("true"); } else { headline.append("false"); } headline.append("\n"); saveScore(QString("evaluate_global_symm_auto.txt"), symmScore, headline); emit( message("Evaluate global symmetry auto end. ") ); }
void savePlayer(char* fname, char* fname_head_pae, char* fname_score, player_info *player) { FILE *save = NULL; save = fopen(fname, "wt"); if (save == NULL) puts("save fopen() fail!"); printf("%s %d %d %d %d %d %d\n",player->id, player->isSwing, player->isChongtong, player->total_score, player->go_count, player->total_score_when_go, player->money); fprintf(save, "%s %d %d %d %d %d %d\n", player->id, player->isSwing, player->isChongtong, player->total_score, player->go_count, player->total_score_when_go, player->money); savePae(fname_head_pae, player->head_pae); saveScore(fname_score, player->score); fclose(save); }
void GameplayScene::exitScene(Scene* nextScene){ if(nextScene != NULL){ Scene::exitScene(nextScene); } else{ saveScore("score.txt"); Scene::exitScene(new ResultScene(game, points, this->entitiesLeft)); } }
void GameplayScene::winGame() { if(this->entitiesLeft == 0 && levelNumber < 3 && levelNumber > 0) { levelNumber++; Scene::exitScene(new GameplayScene(game, levelNumber, this->points)); } else { saveScore("score.txt"); Scene::exitScene(new ResultScene(game, points, this->entitiesLeft)); } }
bool EndState::handleEvent(const sf::Event& e) { if (e.type == sf::Event::KeyPressed && e.key.code == sf::Keyboard::Escape) { ScoreGenerator& scores = *getContext().score; saveScore(scores.getScoreString()); scores.resetScores(); requestStackPop(); requestStackPush(States::Title); } return false; }
void ScorerManager::evaluateTopologyAuto() { emit( message("Evaluate topology auto starts: ") ); if ( connectPairs_.empty() ) { emit( message("Parse topology first! ") ); return; } QVector<double> topoScore = evaluateTopology(this->scheduler_->allGraphs); saveScore(QString("evaluate_connectivity_auto.txt"), topoScore, QString()); emit( message("Evaluate topology auto end. ") ); }
void ScorerManager::evaluateGroupsAuto() { emit( message("Evaluate group auto starts: ") ); if ( groupRelations_.empty() ) { emit( message("Parse constraint group first! ") ); return; } QVector<double> groupScore = evaluateGroups(this->scheduler_->allGraphs); saveScore(QString("evaluate_group_auto.txt"), groupScore, QString()); emit( message("Evaluate group auto end. ") ); return; }
bool MTest::saveCompareScore(Score* score, const QString& saveName, const QString& compareWith) { saveScore(score, saveName); QString cmd = "diff"; QStringList args; args.append(saveName); args.append(root + "/" + compareWith); int n = QProcess::execute(cmd, args); if (n) { printf(" <%s", qPrintable(cmd)); foreach(const QString& s, args) printf(" %s", qPrintable(s)); printf("> failed\n"); return false; } return true; }
void ofxAntescofog::simulate() { // TODO changer le bouton simulate en edit if (edited()) saveScore(false); timeline.disable(); if (!ofxAntescofoSim) { setupTimelineSim(); } else { timelineSim.enable(); if (ofxAntescofoNoteSim->mAntescofo) { //ofxAntescofoNote->deleteActionTrack(); delete ofxAntescofoNoteSim->mAntescofo; ofxAntescofoNoteSim->mAntescofo = new antescofo_ascograph_offline(); } } ofxAntescofoNoteSim->mAntescofo->antescofo_stop_run(); ofxAntescofoNoteSim->mAntescofo->antescofo_stop(); ofxAntescofoNoteSim->loadscoreAntescofo(mScore_filename); if (ofxAntescofoNote->getActionTrack()) ofxAntescofoNote->deleteActionTrack(); if (ofxAntescofoNoteSim->getActionTrack()) ofxAntescofoNoteSim->deleteActionTrack(); ofxAntescofoNoteSim->mAntescofo->set_score_file(mScore_filename.c_str()); ofxAntescofoNoteSim->mAntescofo->set_verbosity_level(1); ofxAntescofoNoteSim->mAntescofo->set_trace(true); //TODO set_audio_file if (ofxAntescofoNoteSim->mAntescofo->countActions()) { cout << endl << "Launching performance simulation:" << endl; ofxAntescofoNoteSim->mAntescofo->play_mode(); ofxAntescofoSim->update(); if (str_error.size()) { bShowError = true; display_error(); } } else { //TODO display error no action in score to simulate } }
void StateNewScore::handleEvents() { sf::Event ev; while(m_window.pollEvent(ev)) { // X window button clicked if(ev.type == sf::Event::Closed) { m_tetris.setNextState(STATE_EXIT); } else if(ev.type == sf::Event::KeyPressed) { switch(ev.key.code) { // Escape pressed case sf::Keyboard::Escape: m_tetris.setNextState(STATE_MENU); break; // Backspace pressed case sf::Keyboard::BackSpace: deleteChar(); break; // Enter pressed case sf::Keyboard::Return: saveScore(); break; default: break; } } // Character entered else if(ev.type == sf::Event::TextEntered) { addChar(ev.text.unicode); } } }
void Minesweeper::startGame(){ SDL_Event event; thread timer(&Minesweeper::renderTimerText,this); while (!done){ checkEvents(&event); mtx.lock(); renderGame(); mtx.unlock(); if (isPlayerWinner() || gameOver){ if (isPlayerWinner() && !cheatActived) saveScore(); waitPlayer(&event); } checkCheat(); struct timespec timespec_st = {0,NANOSEC}; nanosleep(×pec_st,NULL); //used to not consume 100% of the cpu 0,1s } timer.join(); SDL_FreeSurface(displayVideo); SDL_FreeSurface(images); SDL_Quit(); TTF_Quit(); }
bool MTest::saveCompareScore(Score* score, const QString& saveName, const QString& compareWith) const { saveScore(score, saveName); return compareFiles(saveName, compareWith); }
void Game::Update(float dt) { // Update camera camera.setCenter(320/2, getCenterOfLanes()); sine_timer += dt; camera.setRotation((float)sin(sine_timer)*10); window->setView(camera); // Retry if (dead || menu) { if (emap.isActive("reset")) { player.y = 0; player.x = 320/2-5; while (lanes.size() > 3) lanes.pop_back(); enemies.clear(); score = 0; spawn_timer = 0; diff = 1; dead = false; menu = false; } if (emap.isActive("menu") && !menu) { menu = true; player.y = 1; player.x = 320/2-5; enemies.clear(); score = 0; spawn_timer = 0; diff = 1; dead = false; menu = true; current_saying_menu = rand()%menu_sayings.size(); } return; } // Update score if (score > high) { high = score; newhighscore = true; } // Movement if (emap.isActive("up") && player.y > 0) player.y--; if (emap.isActive("down") && player.y < lanes.size()-1) player.y++; if (emap.isActive("left")) player.x-=100*dt; if (emap.isActive("right")) player.x+=100*dt; // Add enemies ---------- This is bad, I might fix it later spawn_timer += dt; if (spawn_timer > diff) { int flag = rand()%2; int flag2 = 0; if (flag==1) flag2 = 0; else flag2 = 1; int oldflag = 0; for (int i = 0; i < 2; i++) { oldflag = flag2; enemies.emplace_back(Enemie(310*flag, rand()%(lanes.size()), flag2)); while (oldflag == flag2) flag2 = rand()%2; } spawn_timer=0; } // Update enemies for (int i = 0; i < enemies.size(); i++) { Enemie &e = enemies[i]; // Player death if (e.y == player.y) { if (e.x+10 > player.x && e.x < player.x+10) { current_saying_dead = rand()%dead_sayings.size(); saveScore(); saying_timer = 0; current_saying = 0; dead = true; newhighscore = false; } } // Remove if off screen if (e.x < 0 || e.x > 320) { e.dispose(diff); enemies.erase(enemies.begin()+i); score++; } // Speed up after a while if (diff > 0.25) diff -= 0.000005; // Update position if (e.flag==1) e.x+=200*dt; else e.x-=200*dt; } }
int main(int argc, char** argv) { if(argc >= 3) { int currentArgument = 0; std::string userID = argv[++currentArgument]; std::string secondArg = argv[++currentArgument]; std::vector<std::string> settings; loadSettings(userID, settings); if(secondArg == "HAS_SETTING") { std::string askedSetting = argv[++currentArgument]; for(size_t i=0; i<settings.size(); ++i) { if(askedSetting == settings[i]) { std::cout << "checked"; return 0; } } return 0; } else if(secondArg == "GET_SCORE") { std::cout << loadScore(userID); return 0; } std::vector<Verb> verbs; { std::string line; std::ifstream in("data/verbs.list"); while(in.good() && !in.eof()) { getline(in, line); if(line == "VERB_BEGIN") { Verb v; if(v.read(in, settings)) verbs.push_back(v); } } } if(secondArg == "PUZZLE1") { // get some simple puzzles std::cout << "<form action=\"index.php\" method=\"post\">\n"; srand(static_cast<unsigned>(time(0))); for(int i=0; i<5; ++i) { int index = rand() % verbs.size(); Verb& v = verbs[index]; if(v.values.size() < 2) break; int propertyIndex = rand() % v.values.size(); auto it = v.values.begin(); for(int i=0; i<propertyIndex; ++i) ++it; std::string property = it->first; std::string value = it->second; int propertyIndex2 = rand() % (v.values.size()-1); if(propertyIndex2 >= propertyIndex) ++propertyIndex2; auto it2 = v.values.begin(); for(int i=0; i<propertyIndex2; ++i) ++it2; outputSinglePuzzle(index, property, value, it2->first); } std::cout << "<table><tr><th>Submit:</th><td><input type=\"submit\"></td></tr></table>\n"; std::cout << "</form>\n"; } else if(secondArg == "GRADE1") { // grade opponent's answer to a single puzzle! std::stringstream ss(argv[++currentArgument]); int index; ss >> index; std::string propertyName = argv[++currentArgument]; std::string propertyValue = argv[++currentArgument]; const Verb& v = verbs[index]; const std::string& val = v.values.find(propertyName)->second; long long userScore = loadScore(userID); int score = outputSingleGrade(v, propertyName, val, propertyValue); if(score > 0) userScore += score; else userScore /= 2; saveScore(userID, userScore); std::cout << " score: " << userScore << "<br/>" << std::endl; }
/*********************************************************** synopsis: a big while loop that runs the full length of the game, checks the game events and responds accordingly event action ------------------------------------------------- winGame stop the clock and solve puzzle timeRemaining update the clock tick timeUp stop the clock and solve puzzle solvePuzzle trigger solve puzzle and stop clock updateAnswers trigger update answers startNew trigger start new updateScore trigger update score shuffle trigger shuffle clear trigger clear answer quit end loop poll events check for keyboard/mouse and quit finally, move the sprites -this is always called so the sprites are always considered to be moving no "move sprites" event exists - sprites x&y just needs to be updated and they will always be moved inputs: head - first node in the answers list (in/out) dblHead - first node in the dictionary list screen - the SDL_Surface to display the image letters - first node in the letter sprites (in/out) outputs: n/a ***********************************************************/ static void gameLoop(struct node **head, struct dlb_node *dlbHead, SDL_Surface *screen, struct sprite **letters) { int j,k; int done=0; int numofwords=1; SDL_Event event; time_t timeNow; SDL_TimerID timer; int timer_delay = 20; char buffer[512]; #ifdef demo if (conf.totalgames < 0){ conf.totalgames=8; } conf.totalgames +=1;//demo tags sprintf(buffer,"globaldata/agdemo.cfg"); saveCFG(buffer,&conf); #endif timer = SDL_AddTimer(timer_delay, TimerCallback, NULL); /* main game loop */ while (!done) { if (winGame) { stopTheClock = 1; solvePuzzle = 1; } if ((gameTime < AVAILABLE_TIME) && !stopTheClock) { timeNow = time(0) - gameStart; if (timeNow != gameTime){ gameTime = timeNow; updateTime(screen); } } else { if (!stopTheClock){ stopTheClock = 1; solvePuzzle = 1; } } /* check messages */ if (solvePuzzle) { /* walk the list, setting everything to found */ solveIt(*head); clearWord(letters); strcpy(shuffle, SPACE_FILLED_STRING); strcpy(answer, rootWord); /*displayLetters(screen);*/ displayAnswerBoxes(*head, screen); gamePaused = 1; if (!stopTheClock){ stopTheClock = 1; } solvePuzzle = 0; } if (updateAnswers){ /* move letters back down again */ clearWord(letters); /* displayLetters(screen);*/ displayAnswerBoxes(*head, screen); updateAnswers = 0; } if ((stopTheClock && !gotBigWord && !checkScore)||(startNewGame&&!gotBigWord& !checkScore)){ //Error("inside highscore\n"); for(j=9;j>=0 && hiscore[j].score<totalScore;j--); //Error("score position: %i\n",j); /* the player will be in the hall of fame? */ if(j<9) { for(k=8;k>j;k--) hiscore[k+1]=hiscore[k]; /* put the new score */ hiscore[j+1].score=totalScore; hiscore[j+1].stage=numofwords; //hiscore[j+1].name[0]=0; //if(!getName(hiscore[j+1].name, j+2,i+1)) // break; /* probably a problem if the user closes the window */ /* show the hall of fame */ //hiscores(); /* save hi-scores */ #ifdef demo sprintf(buffer,"/media/internal/appdata/com.cribme.aghddemo/ag-hiscore"); #else sprintf(buffer,"/media/internal/appdata/com.cribme.aghd/ag-hiscore"); #endif //sprintf(buffer,"globaldata/ag-hiscore"); if(!saveScore(buffer,hiscore)) fprintf(stderr,"unable to save hi-scores\ndo you have permissions to write into %s?\n" ,buffer); } checkScore=1; } if (startNewGame) { /* move letters back down again */ if (!gotBigWord){ totalScore = 0; numofwords=0; } newGame(head, dlbHead, screen, letters); #ifdef demo conf.totalgames +=1;//demo tags char buffer[512]; sprintf(buffer,"globaldata/agdemo.cfg"); //Error("Buffer :%s\n",buffer); //Error("TotalGames Written to file :%i\n",conf.totalgames); saveCFG(buffer,&conf); #endif numofwords+=1; checkScore = 0; startNewGame = 0; } if (updateTheScore) { updateScore(screen); updateTheScore = 0; } if (shuffleRemaining) { /* shuffle up the shuffle box */ char shuffler[8]; strcpy(shuffler, shuffle); shuffleAvailableLetters(shuffler, letters); strcpy(shuffle, shuffler); shuffleRemaining = 0; } if (clearGuess) { /* clear the guess; */ if (clearWord(letters) > 0) { Mix_PlayChannel(-1, getSound("clear"),0); } clearGuess = 0; } #ifdef demo //Error("TotalGames:%i\n",conf.totalgames);//conf.totalgames if (conf.totalgames > 8){//conf.totalgames destroyLetters(letters); strcpy(txt, language); ShowBMP(strcat(txt,"images/demo.bmp"),screen, 100,75); done=1; } #endif if (quitGame) { done = 1; } if (inactive){ SDL_WaitEvent(&event); if (event.type == SDL_ACTIVEEVENT && event.active.gain == 1) { inactive = 0; timer = SDL_AddTimer(timer_delay, TimerCallback, NULL); } } else { while (SDL_WaitEvent(&event)) { if (event.type == SDL_ACTIVEEVENT && event.active.gain == 0) { inactive = 1; break; } if (event.type == SDL_USEREVENT) { timer_delay = anySpritesMoving(letters) ? 10 : 100; moveSprites(&screen, letters, letterSpeed); timer = SDL_AddTimer(timer_delay, TimerCallback, NULL); break; } else if (event.type == SDL_MOUSEBUTTONDOWN) { clickDetect(event.button.button, event.button.x, event.button.y, screen, *head, letters); moveSprites(&screen, letters, letterSpeed);//added by me } else if (event.type == SDL_KEYUP) { handleKeyboardEvent(&event, *head, letters); } else if (event.type == SDL_QUIT) { done = 1; break; } } } } #ifdef demo while(conf.totalgames > 8){//conf.totalgames while(SDL_WaitEvent(&event)){ if (event.type == SDL_MOUSEBUTTONDOWN) { PDL_ServiceCall("palm://com.palm.applicationManager/open", "{\"target\":\"http://developer.palm.com/appredirect/?packageid=com.cribme.aghd\"}"); //PDL_LaunchBrowser("http://developer.palm.com/appredirect/?packageid=com.cribme.aghd"); } } } #endif }