Ejemplo n.º 1
0
int main(int argc, const char **argv){
    //Dibuja circulos. Pide el radio y se guarda como: ej. 5 → guardar *****|*****      siento | el centro.
    int n_discos = 0,
        destino = 0,
        radio = 0;
    struct Pila palo[PALOS];

    for (int p=0; p<PALOS; p++)
        inicializar(&palo[p]);

    /*system("clear");
     *       printf("Número de discos (1-9): ");*/
    colocar_discos(&palo[0]);

    while(1){

        system("clear");
        //Para cada fila
        printf("\n\n");
        for(int fila = MAX_PILA-1; fila >= 0; fila--){

            for(int n_palo = 0; n_palo < PALOS; n_palo++){
                printf("\t");
                int asteriscos = palo[n_palo].data[fila];
                int espacios = MAX_DISCO - asteriscos;
                pinta(espacios, ' ');
                pinta(asteriscos, '@');
                printf("|");
                pinta(asteriscos, '@');
                pinta(espacios, ' ');
            }

            printf("\n\n");
        }
        printf("\n");
        do{
            printf("palo, disco: ");
            scanf(" %i, %i", &destino, &radio);
        }while(destino <= 0 || destino > PALOS || radio <= 0 || radio > MAX_DISCO);

        for(int palito = 0; palito < PALOS; palito ++){
            for(int fila = 0; fila < MAX_PILA; fila ++)
                if(palo[palito].data[fila] == radio)
                    if(palo[destino].data[0] == 0 || palo[destino].data[pos_libre(&palo[destino])] > palo[palito].data[fila])
                        if (palo[palito].cima < MAX_PILA + 1){

                            pop(&palo[palito]);
                            push(&palo[--destino], radio);
                        }

        }
    
}
return EXIT_SUCCESS;
}
Ejemplo n.º 2
0
int main(int argc, const char **argv){

    int destino, origen, disc;
    struct Pila palo[PALOS];


    for (int p=0; p<PALOS; p++)
        inicializar(&palo[p]);

    for (int disco=10; disco>0; disco--)
        push(&palo[0], disco);



    while(1){

        system("clear");

        for (int fila=MAX_PILA-1; fila>=0; fila--) {
            for (int n_palo=0; n_palo<PALOS; n_palo++) {  //primero las columnas osea los palos
                printf("\t");
                int asteriscos = palo[n_palo].data[fila];
                int espacios   = MAX_DISCO - asteriscos;

                if (fila >= palo[n_palo].cima){
                    espacios = MAX_DISCO;
                    asteriscos = 0;
                }
                pinta( espacios, ' ' );
                pinta( asteriscos, '*' );
                printf("|");
                pinta( asteriscos, '*' );
                pinta( espacios, ' ' );
            }
            printf("\n");
        }
        do {

            printf("\norigen, destino: ");
            scanf(" %i, %i", &origen, &destino);

        } while(destino > PALOS || destino < 0 );//en caso de q pongamos un destino > 3, o un destino negativo, nos pide otra vez los datos..
        disc = pop(&palo[--origen]);
        push(&palo[--destino], disc);
        //si push devuelve false, hacer push en el origen otra vez
        if(push(&palo[--destino], disc) == false)
            push(&palo[--origen], disc);

    }


    return EXIT_SUCCESS;

}
Ejemplo n.º 3
0
void BlSearchWidget::on_m_inputBusqueda_editingFinished()
{
    BL_FUNC_DEBUG
    pinta();
    g_plugins->run ( "Busqueda_on_m_inputBusqueda_editingFinished_Post", this );
    
}
Ejemplo n.º 4
0
/**
\param val
**/
void BlSearchWidget::setFieldValue ( QString campo, QString val )
{
    BL_FUNC_DEBUG
    BlDebug::blDebug ( "BlSearchWidget::setcifprofesor", 0, val );

    QString SQLQuery("");
    SQLQuery = "SELECT * FROM " + m_tabla + " WHERE " + campo + " = $1";
    BlDbRecordSet *cur = mainCompany() ->load ( SQLQuery, val );

    if ( !cur->eof() ) {
        /// Inicializamos los valores de vuelta a ""
        QMapIterator<QString, QString> i ( m_valores );
        while ( i.hasNext() ) {
            i.next();
            m_valores.insert ( i.key(), cur->value( i.key() ) );
        } // end while
    } else {
        /// Inicializamos los valores de vuelta a ""
        QMapIterator<QString, QString> i ( m_valores );
        while ( i.hasNext() ) {
            i.next();
            m_valores.insert ( i.key(), "" );
        } // end while
    } // end if
    delete cur;
    pinta();
    
}
Ejemplo n.º 5
0
void traslada( 
	int cantidad, 
	int origen, 
	int destino) {
    int intermedio = 0 + 1 + 2 - origen - destino;
    if (cantidad == 1){
	push( pop(p[origen]), p[destino]);
	return;
    }
    traslada(cantidad - 1, origen, intermedio);
    pinta();
    push( pop(p[origen]), p[destino] );
    pinta();
    traslada(cantidad - 1, intermedio, destino);
    
}
void
Edges(Graph *G, int color) {
    int i,grau;
    Lista *candidatos, *eleitos;

	/* Alocando os candidatos */
	candidatos = (Lista*)malloc(sizeof(Lista));
	candidatos->n_elem = 0;
    candidatos->vet = (int*)malloc(sizeof(int) * G->size);
	for (i=0; i<G->size; i++)
		candidatos->vet[i]=-1;

	/* Alocando os eleitos */
	eleitos = (Lista*)malloc(sizeof(Lista));
	eleitos->n_elem = 0;
    eleitos->vet = (int*)malloc(sizeof(int) * G->size);
	for (i=0; i<G->size; i++)
		eleitos->vet[i]=-1;

    for (grau=G->size-1; grau>0; grau--) {

        if (kClique(candidatos,G,grau) && \
			conexos(candidatos,eleitos,grau,G)) {

            pinta(eleitos,grau+1,G,color);
			break;
        }
		else {
			for (i=0; i<eleitos->n_elem; i++)
				eleitos->vet[i]=-1;
			eleitos->n_elem = 0;
		}
    }
}
Ejemplo n.º 7
0
int main()
{
    // setup
    DigitalIn(MATRIX_PIN, PullDown);
    neopixel::PixelArray array(MATRIX_PIN);

    // Turn off miniblip buzzer
    PwmOut speaker(P0_8);
    speaker=0.0;
    
    pinta(0,0,0);
    
    wait(1);
    
    for (int i = 0; i < TOUCH_N; i++) {
        p_touch_io[i] = new DigitalInOut(touch_pin[i]);
        p_touch_io[i]->mode(PullDown);
        p_touch_io[i]->output();
        p_touch_io[i]->write(1);
    }
    
    tick.attach(detect, 1.0 / 64.0);
    
    while(1) {
        // do something
        
        switch (mode){
            case 1:
                pinta(20,0,0);
                break;
            case 2:
                pinta(0,20,0);
                break;
            case 3:
                pinta(0,0,20);
                break;
            case 4:
                pinta(20,20,0);
                break;
            }
        array.update(buffer, NLEDS); 
                
    }
}
Ejemplo n.º 8
0
void juega(int M[10][10])
{int i,j,x,y,puntos;
char tecla,cad[20],MUEV[20];
i=4;j=4;x=4;y=4;
puntos=0;
pinta(M);
do{     setcolor(RED);
	rectangle(50+j*25,50+i*25,75+j*25,75+i*25);
	tecla=getch();
	setcolor(WHITE);
	rectangle(50+j*25,50+i*25,75+j*25,75+i*25);
switch(tecla)
{
case 13: box(50+j*25,50+i*25,75+j*25,75+i*25,1,RED);
	 puntos++;
	 gotoxy(1,1);
	 settextstyle (0,0,RED);
	 setcolor(4);
	 outtextxy (350,50,"Fallaste");

	 delay(500);
	 setcolor(WHITE);
	 outtextxy (350,50,"Fallaste");

	// printf("%d",puntos);
	 //gotoxy(1,1);
	 //printf("%d",puntos);

case 0: tecla=getch();

	switch(tecla)
	{
	case 72:i--;break;
	case 80:i++;break;
	case 75:j--;break;
	case 77:j++;break;

	}
if(i<0)i=0; if (i>9)i=9;
if(j<0)j=0; if (j>9)j=9;
/*
M[y][x]=M[i][j];
	 r
box(100+x*50,100+y*50,150+x*50,150+y*50,1,RED);
gcvt(M[y][x],2,cad);
outtextxy(105+x*50,105+y*50,cad);
M[i][j]=0;
x=j;y=i;
  */
break;


}
  }while (tecla!=27);
}
Ejemplo n.º 9
0
/**
\param val
**/
void BlSearchWidget::setId ( QString val, bool cargarvalores )
{
    BL_FUNC_DEBUG
    BlDebug::blDebug ( "BlSearchWidget::setId", 0, val );
    mdb_id = val;

    if ( m_tabla == "" || !cargarvalores) {
        return;
    } // end if

    if ( val == "" ) {
        m_inputBusqueda->setText ( "" );
        m_textBusqueda->setText ( "" );
        mdb_id = "";
        /// Inicializamos los valores de vuelta a ""
        QMapIterator<QString, QString> i ( m_valores );
        while ( i.hasNext() ) {
            i.next();
            m_valores.insert ( i.key(), "" );
        } // end while
    } else {
        QString SQLQuery("");
	SQLQuery = "SELECT * FROM " + m_tabla + " WHERE " + m_campoid + "= $1";
        BlDbRecordSet *cur = mainCompany() ->load( SQLQuery, mdb_id );
        if ( !cur->eof() ) {
            /// Inicializamos los valores de vuelta a ""
            QMapIterator<QString, QString> i ( m_valores );
            while ( i.hasNext() ) {
                i.next();
                m_valores.insert ( i.key(), cur->value( i.key() ) );
            } // end while
        } // end if
        delete cur;
    } // end if
    pinta();
    
}
// Programa principal.
int main(int argc, char** argv){

	// Abrimos el dispositivo de video por defecto.
	cv::VideoCapture camera(0);
	if(!camera.isOpened()){
		std::cerr << "No se ha podido abrir la video-cámara.\n";
		return -1;
	}
	
	int cara_encontrada = 0;
	
	// Mientras nos se presione Esc, capturamos frames.
	while(true){
		cv::Mat frame, grey_frame;
		camera >> frame;
		
		cv::cvtColor(frame, grey_frame, cv::COLOR_BGR2GRAY);
		stasm_search_single(
			&cara_encontrada,
			puntos_extraidos,
			(char*)grey_frame.data,
			grey_frame.size().width,
			grey_frame.size().height,
			"path",
			"../data");
			
		if(cara_encontrada)
				pinta(frame);

		cv::imshow("video stream", frame);
		if(cv::waitKey(30) >= 0)
			break;
	}
	
	return 0;
}