Пример #1
0
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. ") );
}
Пример #2
0
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);
}
Пример #3
0
void GameplayScene::exitScene(Scene* nextScene){
    if(nextScene != NULL){
        Scene::exitScene(nextScene);
    }
    else{
        saveScore("score.txt");
        Scene::exitScene(new ResultScene(game, points, this->entitiesLeft));
    }
}
Пример #4
0
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));
    }
}
Пример #5
0
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;
}
Пример #6
0
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. ") );
}
Пример #7
0
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;
}
Пример #8
0
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;
      }
Пример #9
0
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
	}
}
Пример #10
0
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);
        }
    }
}
Пример #11
0
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(&timespec_st,NULL); 
    //used to not consume 100% of the cpu 0,1s
  }
  timer.join();
  SDL_FreeSurface(displayVideo);
  SDL_FreeSurface(images);
  SDL_Quit();
  TTF_Quit();
}
Пример #12
0
bool MTest::saveCompareScore(Score* score, const QString& saveName, const QString& compareWith) const
      {
      saveScore(score, saveName);
      return compareFiles(saveName, compareWith);
      }
Пример #13
0
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;
    }
}
Пример #14
0
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;
		}
Пример #15
0
/***********************************************************
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

	
}