Esempio n. 1
0
int smallestRouteFile(const string &f) {
	int i, r;
	Grid v;
	Level l;
	
	//Init
	v = readFile(f);
	
	//Copy left side numbers
	for(i = 0; i < v.size(); i++)
		l.push_back(v[i][0]);
	
	//Calc smallest to right
	for(i = 1; i < v.size(); i++)
		l = NextLevel(v, l, i);
	
	//get smallest at first position
	sort(l.begin(), l.end());
	
	return l[0];
}
Esempio n. 2
0
SymbolTable::iterator SymbolTable::addLevel(Level lev, SymbolTable::iterator before){
	auto chk = lookup.find(lev.name);
	if(chk != lookup.end()){
		iterator iter = chk->second;
		iter->merge(lev.begin(), lev.end());
		return iter;
	}else if(before!=levelList.end()){
		double ind1 = before->getIndex();
		double ind2 = ind1-10;
		if(ind2 < 0) throw TableException();
		else if(!before->prev.empty()) ind2 = getLevel(before->prev)->getIndex();
		
		lev.setIndex((ind1+ind2)/2);
		lev.prev = before->prev;
		before->prev = lev.name;
	}else{
		lev.setIndex(mx_ind);
		mx_ind+=1e6;
		lev.prev = (--levelList.end())->name;
	}
	levelList.push_back(lev);
	return lookup[lev.name] = --levelList.end();
	
}
Esempio n. 3
0
void Game::run(){
	sf::Clock clock;
	c::initialize();
	logger::timing("Constants initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds.");
	clock.restart();
	gi::initalize(window);
	gi::smoothCamera = true;
	logger::timing("Graphics interface initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds.");

	gi::renderWindow->setMouseCursorVisible(false);

	Level* level = NULL;

	Time lastTime;
	while(gi::startOfFrame()){
		if(!managerInitialized){
			gi::darken(1.0f);
			gi::endOfFrame();
			clock.restart();
			manager = new Manager();
			manager->initialize(window);
			logger::timing("Manager initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds.");
			controller = new Controller();
			controller->initialize(manager);
			managerInitialized = true;
			continue;
		}
		if(level == NULL){
			gi::darken(1.0f);
			gi::endOfFrame();
			clock.restart();
			level = new Level(manager, controller);
			level->begin();
			logger::timing("Level initialized in " + to_string(clock.getElapsedTime().asSeconds()) + " seconds.");
			clock.restart();
		}

		if(manager->inputManager->isPressed(Keyboard::Escape)){
			window->close();
		}

		Time time = clock.getElapsedTime();
		float dt = (time - lastTime).asSeconds();

		gi::collisionBoxes = manager->inputManager->isPressed(Keyboard::C);

		manager->tick(window, time, dt);

		window->clear();

		level->tick();

		manager->menuManager->draw(time);

		lastTime = time;
		gi::endOfFrame();
	}
	delete level;
	manager->finalize(window);
	delete manager;
	gi::finalize();
	delete controller;
}