Esempio n. 1
0
//------------------------------------------------------
// void bucleMainTetris(void)
//
// Descripción:
//   Juega
//------------------------------------------------------
void bucleMainTetris(void){
	char tecla;
	
	if(estado.primeraPieza == PPIEZA){
		melodiasInic();
		borraTablero();
		if(estado.juegoBloques){
			pintaBloques();
			evaluarTablero();
		}
		resultadoInic();
		nuevaPieza();
		nuevaPieza();
		estado.primeraPieza = NO_PPIEZA;
	}
	
	tecla = teclado();
	//podemos usar una variable de estado para evitar pulsar una tecla
	
	if(tecla == CHAR_UNO) { mueveIzquierda(); }
	if(tecla == CHAR_CUATRO) { caePieza(); }
	if(tecla == CHAR_SIETE) { mueveDerecha(); }
	if(tecla == CHAR_A) { rotacion(); }
						
}
Esempio n. 2
0
//------------------------------------------------------
// void caePieza(void)
//
// Descripción:
//   Mueve la pieza una posicion hacia abajo
//------------------------------------------------------
void caePieza(void) {
	estado.recursoLibre = OCUPADO;
	
	pActual2pAux(); //Copiamos los parametros de la pieza actual en la auxiliar
        borraPieza(piezaActual); //Borramos la pieza del tablero
	
        piezaAux.posicion[POS_Y]++; //Bajamos una posicion la pieza y comprobamos si es posible
        
        if(comprobacionColision(piezaAux) == FALSE) { 
            	pAux2pActual(); //Copiamos los parametros actualizados de la pieza auxiliar a la actual
            	pintaTPieza(piezaActual); //Pintamos la pieza en el tablero
        } else {
		pintaTPieza(piezaActual); //Pintamos la pieza en el tablero
		if(piezaActual.posicion[POS_Y]<0){
			perdiste();
			estado.recursoLibre = LIBRE;	
			return;		
		}
		
		evaluarTablero();
                nuevaPieza();
        }

	estado.recursoLibre = LIBRE;
}
Esempio n. 3
0
void AdministradorXML::procesarRaiz(const QDomElement &element)
{
    if (_IsRaizAsignalada == true)
    {
        //qDebug("Procesando raiz");
        QDomNode child = element.firstChild();
        if (!child.isNull() && child.toElement().tagName() == "piezas" )
        {
            //qDebug("Procesando nodo piezas");
            child = child.firstChild();
            int numeroPieza = 0;
            while (!child.isNull()) {
                QDomElement piezaTemp = child.toElement();
                //qDebug() <<  "Tag: " << piezaTemp.tagName();
                if (piezaTemp.tagName() == "pieza") {
                    //qDebug() << "Pieza: "<< numeroPieza << " procesada";
                    int erodeNumberOfIterations =
                            (piezaTemp.attribute("erodeNumberOfIterations")).toInt();
                    int colorDistanceThreshold =
                            (piezaTemp.attribute("colorDistanceThreshold").toInt());


                    int r = (piezaTemp.attribute("r").toInt());
                    int g = (piezaTemp.attribute("g").toInt());
                    int b = (piezaTemp.attribute("b").toInt());

                    QString funcion =  piezaTemp.attribute("funcion");
                    QString descripcion =  piezaTemp.attribute("descripcion");

                    //qDebug("emitiendo pieza");

                    emit nuevaPieza(numeroPieza,
                                    erodeNumberOfIterations,
                                    colorDistanceThreshold,
                                    r,
                                    g,
                                    b,
                                    funcion,
                                    descripcion);
                    numeroPieza++;
                }
                child = child.nextSibling();
            }
        }
    }

}