Esempio n. 1
0
QString KeyboardTranslator::Entry::conditionToString() const
{
    QString result = QKeySequence(_keyCode).toString();

    // add modifiers
    insertModifier( result , Qt::ShiftModifier );
    insertModifier( result , Qt::ControlModifier );
    insertModifier( result , Qt::AltModifier );
    insertModifier( result , Qt::MetaModifier ); 

    // add states
    insertState( result , KeyboardTranslator::AlternateScreenState );
    insertState( result , KeyboardTranslator::NewLineState );
    insertState( result , KeyboardTranslator::AnsiState );
    insertState( result , KeyboardTranslator::CursorKeysState );
    insertState( result , KeyboardTranslator::AnyModifierState );

    return result;
}
void IDAStar::generateMovements(GameState* currentState,GameState* tempState,const BoxMovement& movement, std::priority_queue<GameState*,std::vector<GameState*>,GameStateComparator>& queue){
	unsigned int numComponents =0;
	field components[4];
	point evasionFields[4];
	unsigned int numEvasionFields = 0;
	std::unordered_set<point, PointHasher, PointEqual> nodes;

	tempState->findAdjacentComponents(movement.dest(),numComponents,components);

	currentState->bfs(movement.bot == RPUSHER? currentState->pusher:currentState->puller,movement.srcBot(),nodes);

	nodes.insert(movement.destBot());
	nodes.insert(movement.dest());
	nodes.insert(movement.src());

	currentState->findEvasionFields(movement.bot == RPUSHER? currentState->puller: currentState->pusher,numComponents, components, nodes, tempState,numEvasionFields,evasionFields);

	for(unsigned int i = 0; i< numEvasionFields; i++){
		nodes.clear();
		RobotMovement* rMove = currentState->path(movement.bot == RPUSHER?RPULLER:RPUSHER,evasionFields[i],nodes,MAXELEMENTS);

		if(rMove != NULL){
			GameState* newState = currentState->copy();
			newState->apply(rMove);

			//MapUtils::printMap(*newState,std::cout);

			nodes.insert(movement.dest());
			nodes.insert(movement.destBot());

			rMove = newState->path(movement.bot,movement.srcBot(),nodes,MAXELEMENTS);

			if(rMove == NULL){
				delete newState;
				continue;
			}

			newState->apply(rMove);
			//MapUtils::printMap(*newState,std::cout);
			newState->apply(new BoxMovement(movement));

			insertState(currentState,newState,queue);
		}
	}
}
Esempio n. 3
0
void nodeDock::added()
{
    connect( app(), SIGNAL(entityAdded(AEntity*)), this, SLOT(centreNode(AEntity*)) );
    connect( app(), SIGNAL(entityRemoved(AEntity*)), this, SLOT(removeNode(AEntity*)) );
    connect( app(), SIGNAL(entityRemoved(AEntity*)), this, SLOT(entityRemoved(AEntity*)) );

    connect( app(), SIGNAL(selectionChanged()), this, SLOT(appSelectionChanged()) );
    connect( app(), SIGNAL(insertState()), this, SLOT(rebuildGui()) );
    connect( app(), SIGNAL(cleanState()), this, SLOT(rebuildGui()) );
    connect( app(), SIGNAL(openState()), this, SLOT(rebuildGui()) );
    connect( app(), SIGNAL(workingPathChanged()), this, SLOT(rebuildGui()) );

    mView->setApp(app());

    mScene->addItem( new propertiesWidget( app(), mView ) );

    qRegisterMetaType<AEntityLocation>();

    directoryListing *dir( new directoryListing( app(), mView ) );
    mScene->addItem( dir );
    connect( dir, SIGNAL(changeDirectory(AEntityLocation)), this, SLOT(changeDirectory(AEntityLocation)), Qt::QueuedConnection );
}