//------------------------------------------------------ // 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(); } }
void borrar(struct arbol **A, int val){ struct arbol *arbol_aux; if((*A) == NULL){ printf("Error, no hay nodos en el arbol"); return; } if((*A)->valor < val) borrar(&(*A)->der, val); else if((*A)->valor > val) borrar(&(*A)->izq, val); else if((*A)->valor == val){ arbol_aux = *A; if((*A)->izq == NULL) *A = (*A)->der; else if((*A)->der == NULL) *A = (*A)->izq; else rotacion(&(*A)->izq, &arbol_aux); free(arbol_aux); } }
void rotacion(struct arbol **a, struct arbol **B) { if ((*a)->der != NULL) rotacion(&(*a)->der, B); else { (*B)->valor = (*a)->valor; *B = *a; *a = (*a)->izq; } }
int main(){ printf("BIENVENIDO\n1)JUGAR SOLO \n2)JUGAR CON ALGUIEN\n"); scanf("%d",&sol); for (int i=0;i<maxtan;i++){ for (int j=0;j<maxtan;j++){ matrix[j][i]=0; } } for (int i=0;i<100;i++){ matrix[(1+ (rand()% 10))][(1+ (rand()% maxtan))]=3; } int pxp=maxtan-1; int pyp=(maxtan-1)/2; matrix[pxp][pyp]=8; //printf("\n PROGRAMA ESCRITO POR ACEVEDO!!!!!!!!!!!!!!!!\n"); grafica(); //###################canon####################################### int longitud= 5; int salid=-1; int pfy=(pyp+(longitud-1)); int pfx=(pxp-(longitud-1)); printf("4+enter:izquierda\n6+enter:derecha\n0+enter:dispara\n\n"); while(salid!=-2){ int* sa = bresen(pyp,pxp,pfy,pfx); int j= 0; for (int i = 0; i <longitud; i++){ matrix[sa[j+1]][sa[j]]=4; j=j+2; } //printf("xf: %d,yf:%d\n",pfy,pfx ); if(salid==4){ j= 0; for (int i = 0; i <longitud; i++){ matrix[sa[j+1]][sa[j]]=0; j=j+2; } rotacion(pyp,pxp,&pfy,&pfx,-1); printf("xf: %d,yf:%d\n",pfy,pfx ); sa = bresen(pyp,pxp,pfy,pfx); j= 0; for (int i = 0; i <longitud; i++){ matrix[sa[j+1]][sa[j]]=4; j=j+2; } } if(salid==6){ j= 0; for (int i = 0; i <longitud; i++){ matrix[sa[j+1]][sa[j]]=0; j=j+2; } rotacion(pyp,pxp,&pfy,&pfx,5); printf("xf: %d,yf:%d\n",pfy,pfx ); sa = bresen(pyp,pxp,pfy,pfx); j= 0; for (int i = 0; i <longitud; i++){ matrix[sa[j+1]][sa[j]]=4; j=j+2; } } if(salid==0){ int vx=pfx-pxp; int vy=pfy-pyp; int sent=1; if(vx<0){ sent=-1; } if (vx!=0){ vx=vx*sent; } printf("\nvx %d\n",vx ); printf("vy %d\n", vy); juego(sa[((longitud*2)-1)],sa[((longitud*2)-2)],vx,vy); } grafica(); scanf("%d",&salid); } return 0; }