Red de conocimiento informático - Conocimiento informático - Buscando un programa de Tetris en lenguaje c

Buscando un programa de Tetris en lenguaje c

h>

int dx[4],dy[4]; /*Definir variables globales*/

int zt1,zt2,str[15][19]; /p >

/*str[15][19] Divide toda la pantalla en 15*19 cuadrados, cada cuadrado está representado por una celda de matriz.

Si =15, significa que el cuadrado ha Ocupado, =0, significa que el cuadrado aún está vacío*/

int cx[8][5][4],cy[8][5][4];

int cx[8][5][4],cy[8][5][4]; /*Esta variable representa el cambio en las coordenadas cuando se rota cada estado*/

int x ,y,j,ji,c;

int maxzt[8]={0,2,1,4,2,2,4,4} /*Cuántos estados hay para cada uno; cuadrado* /

cir() /*Función de procesamiento de rotación*/

{ dx[0]=dx[0]+cx[zt1][zt2][0]; [0 ]=dy[0]+cy[zt1][zt2][0];

dx[2]=dx[2]+cx[zt1][zt2][2];dy[ 2] =dy[2]+cy[zt1][zt2][2];

dx[3]=dx[3]+cx[zt1][zt2][3];dy[3] ]= dy[3]+cy[zt1][zt2][3];

}

jiance() /* Función para detectar si se puede realizar rotación o movimiento, si entonces, entonces j=1, si no, entonces j=0*/

{ j=1

for(ji=0;ji<4;ji++)

{ x=dx[ ji];y=dy[ji];

if(str[x][y]! =' ') j=0; >}

c=dx[ji];y=dy[ji];

if(str[x][y]!

c=bioskey (1 );

if(c!=0) c=bioskey(0

}

principal

; { int dotx[4],doty[4],score; /*dotx[]doty[] representa las coordenadas de cada punto del cuadrado*/

int ddx,ddy;

int rzt1, rzt2,i,u,t=1;

int a[5],b[11],o,p,an,bn

int rotx; [4],roty [4],spd=0;

begin: system("cls"); /* Fase de inicialización del juego*/

printf("londing... ");

p>

for(i=0;i<12;i++) /*Fase de inicialización de variable**/

{ for(u=0;u<19; u++)

str[i][u]=' ';

}

for(i=0;i<12;i++)

{str[ i][0]='-';str[i][18]='-' }

for(u=0;u<19;u++)

{ str[0][u]='|';str[11][u]='|' }

cx[1][1][0]=; 1;cx[1][ 1][2]=-1;cx[1][1][3][2]=-2; /* Asignar valor a la variable de rotación*/

cy [1][1][0 ]=1;cy[1][1][2]=-1;cy[1][1][3]=-2

>cx[1][2][0]=-1;cx[1][2][2]=1;cx[1][2][3]=2

cx[; 1][2][0]=-1;cx[1][2][2]=1;cx[1][2][3]=2

cy[1][; 2][0]=-1;cy[1][2][2]=1;cy[1][2][3]=2

cx[2][1][; 0]=0;cx[2][1][2]=0;cx[2][1][3]=0;

cy[2][1][0]=0 ;cy[2][1][2 ] =0;cy[2][1][3]=0

cx[3][1][0]=1; ][1][2]=-1; cx[3][1][3]=1;

cy[3][1][0]=-1; 1][2]=1; cy[3][1][3]=1;

cx[3][2][0]=1; ]=-1;cx[3][2][3]=-1;

cy[3][2][0]=1;cy[3][2][2]= -1;cy[3][2][3]=1;cy[3][2][3]=1

cx[3][3][0]=-1; cx[3][3][2]=1;cx[3][3][3][3]=-1;

cy[3][3][0]=1; cy[3][3][2]=-1;cy[3][3][3]=-1;

cx[3][4][0]=-1;cx [3][4][2]=1;cx[3][4][3]=1;

cy[3][4][0]= -1;cy[3] [4][2]=1;cy[3][4][3]=-1

cx[4][1][0]=-1;cx[4][1; ][2]=1;cx[4][1][3]=2;

cy[4][1][0]=1;cy[4][1][2] =1;cy[4][1][3]=0 ;

cx[4][2][0]=1;cx[4][2][2]=-1; cx[4][2][3]=-2;

cy[4][2][0]=-1;cy[4][2][2]=-1;cy [4][2][3]=0;

cx[5][1][0]=1;cx[5][ 1][2]=1;cx[5][ 1][3]=0;

cy[5][1][0]=-1;cy[5][1][2]=1;cy[5][1][ 2]=1;cy[5][1][3]=2

cx[5][2][0]=-1;cx[5][2][2]= -1;cx[5][2][3]=0;

cy[5][2][0]=1;cy[5][2][2]=-1; cy[5][2][3]=-2

cx[6][1][0]=1;cx[6][1][2]=-1;cx[ 6][1][1][3]=0;

cy[6][1][0]=-1;cy[6][1][2]=1; 6][1][3]=2;

cx[6][2][0]=1;cx[6][2][2]=-1;cx[6][ 2][3]=-2;

cy[6][2][0]=1;cy[6][2][2]=-1;cy[6][2] [3]=0;

cx[6][3] [0]=-1;cx[6][3][2]=1;cx[6][3][3] =0;

cy[6][3][0]=1;cy[6][3][2]=-1;cy[6][3][3]=-2 ;

cx[6][4][0]=-1;cx[6][4][2]=1;cx[6][4][2] [3]=2 ;

cy[6][4][0]=-1;cy

[6][4][2]=1;cy[6][4][3]=0

cx[7][1][0]=-1;cx[7] [1][2]=1;cx[7][1][3]=2;

cy[7][1][0]=1;cy[ 7][1][ 2]=-1;cy[7][1][3]=0

cx[7][2][0]=-1;cx[7][2][2] =1;cx[7][2][3]=0;

cy[7][2][0]=-1;cy[7][2][2]=1; cy[7][2][3]=2;

cx[7][3][0]=1;cx[7][3][2]=-1;cx[7 ][3][3]=-2;

cy[7][3][0]=-1;cy[7][3][2]=1;cy[7][ 3][3]=0;

cx[7][4][0]=1;cx[7][4][2]=-1;cx[7][4][ 3]=0;

cy[7][4][0]=1;cy[7][4][2]=-1;cy[7][4][3]= -2;

srand(time(0)); /*Inicializar función de número aleatorio rand() */

zt1=rand()%7 +1; Dos cuadrados*/

if(zt1==2) zt2=1

if(zt1==1||zt1==4||zt1==5) zt2=; rand()%2+1;

if(zt1==3||zt1==6||zt1==7) zt2=rand() %4+1; >rzt1=rand()%7+1;

if(rzt1==2) rzt2=1

if(rzt1==1||rzt1==4 || rzt1==5) rzt2=rand()%2+1;

if(rzt1==3||rzt1==6||rzt1==5) rzt2=rand()%2 +1

if(rzt1==6||rzt1==6|rzt1==6|rzt1=5) 6||rzt1==7) rzt2=rand()%4+1; p>

puntuación=0;

for(o=1;o<11;o++) b[o]=0;

cambiar(rzt1*1 rzt2)

/* Representa el tipo de cubo y el estado del cubo, es decir, zt1 y zt2.

Este paso consiste en determinar las coordenadas de los cuatro puntos del cubo en base a estas dos variables*/

{ caso 11: dotx[0]=4;dotx[1]=5;dotx[2] =6;dotx [3]=7;

doty[0]=2;doty[1]=2;doty[2]=2;doty[3]=2;

caso 12: dotx[0]=5;dotx[1]=5;dotx[2]=5;dotx[3]=5;

doty[0]= 4;doty[ 1]=3;doty[2]=2;doty[3]=1;

romper

caso 21: dotx[0]=5;dotx [1]= 6;puntox[2]=5;puntox[3]=6;

doty[0]=1;doty[1]=1;doty[2]=2;doty[ 3]=2 ;

romper;

caso 31: puntox[0]=4;puntox[1]=5;puntox[2]=6;puntox[3]= 5;

p>

doty[0]=2;doty[1]=2;doty[2]=2;doty[3]=1; ;

caso 32: dotx[0]=5;dotx[1]=5;dotx[2]=5;dotx[3]=6; =1;dotx[1]=2 ;dotx[2]=3;dotx[3]=2;

romper

Ejemplo 33: puntox[0]=6; puntox[1]=5;puntox[ 2]=4;puntox[3]=5; <

doty[0]=1;doty[1]=1;doty[2]=1; doty[3]=2;

p>

romper;

caso 34: dotx[0]=6;dotx[1]=6;dotx[2]=6;dotx [3]=5;

doty[0]=3; < doty[1]=2;doty[2]=1;doty[3]=2; ;

Ejemplo 41: dotx[0]=6;dotx[1]=5;dotx[2]=5;dotx[3]=4; =2;doty[1]=2;doty [2 ]=1;doty[3]=1;

romper

caso 42: dotx[0]=5; puntox[1]=5;puntox[2] =6;puntox[3]=6;

doty[0]=3;doty[1]=2;doty[2]=2;doty [3]=1;

romper;

Ejemplo 51: puntox[0]=4;puntox[1]=5;puntox[2]=5;puntox[3] =6;

doty [0]=2;doty[1]=2;doty[2]=1;doty[3]=1;

romper; >

romper;

caso 52: dotx[0]=5;dotx[1]=5;dotx[2]=6;dotx[3]=6; >doty[0]=1;doty[1 ]=2;doty[2]=2;doty[3]=3;

break

Ejemplo 61: dotx[ 0]=4; puntox[1]=5 ; puntox[2]=6; puntox[3]=6; ]=2; doty[3]=1;

romper;

caso 62: puntox[0]=5;

]=5.dotx[2]=5;dotx[3]=6;

doty[0]=1;doty[1]=2;doty[2]=3;doty[3] =3;

romper;

caso 63: puntox[0]=6;puntox[1]=5;puntox[2]=4;puntox[3 ]=4;

doty[0]=1;doty[1]=1;doty[2]=1;doty[3]=2;

romper; >caso 64: puntox[0]=6;puntox[1]=6;puntox[2]=6;puntox[3]=5

doty[ 0]=3;puntox[1] =2;dotx[2]=1;dotx[3]=1;

romper;

caso 71: puntox[0]=6;puntox[1]=5; puntox[2]=4;puntox[3]=4;

doty[0]=2;dotx[1]=2.doty[2]=2;doty[3]=1; /p>

romper;

caso 72: dotx[0]=5;dotx[1]=5;dotx[2]=5;dotx[3]=6;

doty[0]=3;doty[1]=2;doty[2]=1;doty[3 ]=1;

ruptura

caso 73: puntox[0]=4;puntox[1]=5;puntox[2]=6;puntox[3]=6;

doty[0]=1;doty[1]=1;doty [2]=1;doty[3]=2;

romper;

caso 74: dotx[0]=6;dotx[1]=6;dotx[2] =6;puntox[3]=5;

doty[0]=1;puntox[1]=2;puntox[2]=3;puntox[3]=3; p>break;

}

switch(rzt1*1rzt2) /* Determinar las coordenadas de cada punto del segundo cuadrado*/

{ case 11 : rotx[0]=4;rotx[1]=5;rotx[2]=6;rotx[3]=7;

roty[0]=2;rotx[1]=2; ; rotx[2]=2.

caso 12: rotx[0]=5;rotx[1]=5;rotx[2]=5;rotx[3]=5;

roty[0]=4;roty[1]=3;roty[2]=2;roty[3]=1;

romper

caso 21: rotx[0]=5;rotx[1]=6;rotx[2]=5;rotx[3]=6;

roty[0]=1;roty[1]=1;roty [ 2]=2;roty[3]=2;

romper;

caso 31: rotx[0]=4;rotx[1]=5;rotx[2] = 6;rotx[3]=5;

roty[0]=2;roty[1]=2;roty[2]=2;roty[3]=1; p >romper;

caso 32: rotx[0]=5;rotx[1]=5;rotx[2]=5;rotx[3]=6; [ 0]=1;roty[1]=2;roty[2]=3;roty[3]=2;

romper

Ejemplo 33: rotx[0] = 6;rotx[1]=5;rotx[2]=4;rotx[3]=5

roty[0]=

1;roty[1]=1;roty[2]=1;roty[3]=2;

romper

caso 34: rotx[0]=6;rotx [1]=6;rotx[2]=6;rotx[3]=5; <

roty[0]=3;roty[1]=2;roty[2]=1;roty [3]=2;

romper;

Ejemplo 41: rotx[0]=6;rotx[1]=5;rotx[2]=5;rotx[3] =4;

roty[0]=2; < roty[1]=2;roty[2]=1;roty[3]=1; p> p>

caso 42: rotx[0]=5;rotx[1]=5;rotx[2]=6;rotx[3]=6;

roty[0]= 3; roty[1]=2;roty[2 ]=2;roty[3]=1;

romper

Ejemplo 51: rotx[0]=4;rotx [1 ]=5;rotx[2]=5;rotx[3]=6;

roty[0]=2;roty[1]=2;roty[2]=1;roty[ 3] =1;

romper;

caso 52: rotx[0]=5;rotx[1]=5;rotx[2]=6;rotx[3]= 6;

roty[0]=1;roty[1]=2;roty[2]=2;roty[3]=3;

romper

romper;

caso 61:rotx[0]=4;rotx[1]=5;rotx[2]=6;rotx[3]=6;

roty[0] =2 ;roty[1]=2;roty[2]=2;roty[3]=1;

romper

caso 62: rotx[0]=5; rotx[ 1]=5; rotx[2]=5; rotx[3]=6; rotx[0]=1; [3 ]=3;

romper;

caso 63: rotx[0]=6; =4 ;

roty[0]=1;roty[1]=1;roty[2]=1;roty[3]=2;

romper; >

caso 64: rotx[0]=6;rotx[1]=6;rotx[2]=6;rotx[3 ]=5

roty[0]=3;roty [1 ]=2;roty[2]=1;roty[3]=1;

romper;

caso 71: rotx[0]=6;rotx[1] =5 ;rotx[2]=4;rotx[3]=4;

roty[ 0]=2;rotx[1]=2;rotx[2]=2;rotx[3]= 1;

romper;

caso 72: rotx[0]=5;rotx[1]=5;rotx[2]=5;rotx[3]=6; /p >

roty[0]=3;roty[1]=2;roty[2]=1;roty[3]=1;

romper; caso 73 :rotx[0]=4;rotx[1]=5;rotx[2]=6;rotx[3]=6

roty[0]=1;roty[1]= 1; roty[2]=1;roty[3 ]=2;

romper

caso;

74: rotx[0]=6;rotx[1]=6;rotx[2]=6;rotx[3]=5;

roty[0]=1;roty[1]=2; ;roty[2]=3;roty[3]=3;

romper ;

}

sistema?

sistema( "cls"); /* Mostrar etapa inicial*/

printf("\n\n\n" /* Mover el área del juego hacia abajo 3 */

for ( u=0;u<19;u++)

{ for(i=0;i<12;i++)

printf("%c",str[i][ u ]);

printf("\n");

}

gotoxy(16,5);printf("------ - -");

gotoxy(16,12);printf("---- ----");

for(i=6;i<12; i++ )

{ gotoxy(16,i);printf("|");printf("|" }

for(i=6;i<12;i++ )

{gotoxy(16,i);printf("|");gotoxy(23,i);printf("|"); i<4;i++)

{gotoxy(rotx[i]+14,roty[i]+6);printf("%c",15);

}

begin2: delay(26000); /* El juego comienza, retraso 1**/

velocidad: retraso(10000); /* Aceleración, retraso 2**/

gotoxy(16,14);printf("Puntuación:

for(i=0;i<4;i++)

{gotoxy(puntox[i]+ 1 ,doty[i]+4);printf(" ");

ddx=dotx[i];ddy=doty[i];

str[ddx][ddy ] =' ';

}

an=an-0.4; /*Indica si se ha presionado el botón, usado para mover el cubo después de que aterriza*/

c=bioskey(1); /*Parte de procesamiento de claves*/

/*bioskey(1) es una función utilizada para detectar si se presiona una tecla*/

if (¡do! =0)

{ c=bioskey(0);

if(c==8292||c==19712)

{ for(i= 0;i<4;i++)

{ dx[i]=dotx[i]+1;dy[i]=doty[i] }

Jiance(1)

jiance();

for(i=0;i<4;i++)

dotx[i]=(j)? : puntox[i];

an=(j||bn

}

if(i<4;i++)

dotx[i]=(j)?

if(c==7777||c==19200)

{ for(i=0;i<4;i++ )

{ dx[i]=dotx[i]-1;dy[i]=doty[ i] }

jiance=(j)?

jiance();

para(i=0

;i<4;i++)

puntox[i]=(j)? dx[i] : puntox[i]

an=(j||bn); /p>

}

if(i<4;i++)

dotx[i]=(j)?

if(c== 6512) /* Pausar procesamiento*/

{ while(1)

{ c=bioskey(0);

if(c==6512) break

}

ir a comenzar3

}

if(c==8051||c==20480) spd=1 ; /* Aceleración (spd==1 indica estado de aceleración)*/

if(c==4471||c==18432) /* Procesamiento de rotación**

{ for (i=0;i<4;i++)

{ dx[i]=dotx[i];dy[i]=doty[i] }

/*dx; [] y dy[] son ​​variables temporales, por lo que una vez que se determina que no se pueden rotar, se pueden restaurar fácilmente a las coordenadas antes de la rotación*/

cir() /* Rotación*/

jiance(); /* Determinar si la rotación es posible*/

for(i=0;i<4;i++)

{ dotx[i ]=(j) ?dx[i] : dotx[i]; doty[i]=(j)?dy[i] : doty[i] }

/* Según el valor de j obtenido de jiance(), determine si a dotx[] y doty[] se les asignan valores posteriores o previos a la rotación*/

if(j==1) /*Si la rotación es posible, cambie el estado del cubo original*/

{ an=(j||bn);zt2=zt2+1

if(zt2>maxzt[zt1]) zt2=1;

goto overif; /*Finalizar procesamiento de rotación*/

}

for(i=0;i<4. i++)

{ dx[i]=dotx [i]+1;dy[i]=doty[i]; }

/* Si no se puede rotar, determine si se puede rotar después de mover las coordenadas. a la derecha por 1*/

cir();

jiance();

for(i=0;i<4;i++)

{ puntox[i]=(j )? dx[i] : puntox[i]; doty[i]=(j)?dy[i] : doty[i]; p>if(i=0;i<4;i++ )

/* Si no se puede rotar, determine si se puede rotar después de mover las coordenadas hacia la derecha 1*/

cir();

jiance();

for(i=0;i<4;i++)

{ puntox[i]= (j)?

if(j==1)

{ an=(j||bn);zt2=zt2+1

if( zt2>maxzt[zt1]) zt2=1;

ir a overif;

}

if(dotx[2]==1) ir a overif

for(i=0;i<4;i++)

{ dx[i]=dotx[i]-1;dy[i]=doty[i]; /p>

//* Determinar si las coordenadas se pueden rotar después de moverse hacia la izquierda* / Se pueden rotar*/

cir();

jiance();

for(i=0;i<4;i++)

{ puntox[i]=(j)? doty[i]=(j)?dy[i] : doty[i] }

if(i=0;i<4;i++)

{ dotx[i ]=(j)?

if(j==1)

{ an=(j||bn);zt2=zt2+1

if(zt2>maxzt[zt1]) zt2=1;

ir a overif;

}

overif?

overif: ;

}

}

begin3: for(i=0;i<4;i++) /* Procesamiento cuadrado hacia abajo*/

{ dx[i]=dotx[i];dy[i]=doty[i]+1 }

jiance();

bn=j; >

for(i=0;i<4;i++)

doty[i]=(j)?dy[i] : doty[i]

para (i=0;i<4;i++)

{ gotoxy(dotx[i]+1,doty[i]+4);printf("%c",15

);

ddx=dotx[i];ddy=doty[i];

str[ddx][ddy]=15

}

si; (i=0;i<4;i++)

doty[i]=(j)?

if(j==1&&spd==1) { spd=0;goto velocidad }

if(j==1||an>0) ir a comenzar2

for(u=17;u>.0;u--) /* cuando es cuadrado; Proceso al dejar de bajar (el cuadrado se ha movido hacia abajo) */

{ for(i=1;i<11;i++) /* Determinar si cada fila está llena*/

si(cadena[i][u]==15) b[i]=1;

si (b[1]+b[2]+b[3]+b[4 ]+b[5]+b[6]+b[7]+b[8]+b[9]+b[10]<10)

{ para (o=1;o< 11;o++) b[o]=0;

continuar;

}

for (o=1;o<11;o++) b[o] ]=0;

a[t]=u;t++;

}

puntuación+=(t)*(t-1)/2; /p>

for(i=1;i<11;i++)

if(str[i][1]==15) b[i]=1

<; p>si (b[1]+b[2]+b[3]+b[4]+b[5]+b[6]+b[7]+b[8]+b[9]+b [10]>0 &&t==1) pasar a

for(o=1;o<11;o++) b[o]=0

if(t=; =1) goto ran;

switch(t) /* Eliminación de cuadrados, t = función a eliminar + 1 */

{ caso 5: for(u=a [ 4];u>1;u--) { for(i=1;i<11;i++) str[i][u]=str[i][u-1] }

<

p>/* La fila que se va a eliminar está en la fila superior y el cuadrado superior se mueve hacia abajo en su conjunto. Las siguientes situaciones 4, 3 y 2 son similares*/

Ejemplo 4: for(. u=a[3 ];u>1;u--) { for(i=1;i<11;i++) str[i][u]=str[i][u-1] }

Ejemplo 3: for(u =a[2];u>1;u--) { for(i=1;i<11;i++) str[i][u]=str[i][ u-1]; }

Ejemplo 2: for(u=a[1];u>1;u--) { for(i=1;i<11;i++) str[i] [u]=cadena [i][u-1]; }

} }

}

t=1; for(u=1 ;u<18;u++)

{ for(i=1;i<11;i++)

{ gotoxy(i+1,u+4)

printf("%c",str [i][u]);

}

}

ran:zt1; =rzt1;zt2= rzt2;rzt1=rand()%7+1; /* Genera los siguientes dos cuadrados*/

if(rzt1==2) rzt2=1; >if(rzt1 ==1||rzt1==4||rzt1==5) rzt2=rand()%2+1;

if(rzt1==3||rzt1==6| |rzt1== 7) rzt2=rand()%4+1;

for(i=0;i<4;i++)

{ puntox[i]=rotx[ i].doty [i]=roty[i];

gotoxy(dotx[i]+1,doty[i]+4); >

}

cambiar(rzt1*1rzt2)

{ caso 11: rotx[0]=4; rotx[1]=5;rotx[2]= 6;rotx[ 3]=7;

roty[0]=2;roty[1]=2;roty[2]=2;roty[3]=2; >romper;

caso 12: rotx[0]=5;rotx[1]=5;rotx[2 ]=5;rotx[3]=5;

roty[ 0]=4 ;roty[1]=3;roty[2]=2;roty[3]=1;

romper

caso 21: rotx[0]= 5;rotx[ 1]=6;rotx[2]=5;rotx[3]=6

roty[0]=1;roty[1]=1;roty[2]=2 ;roty[3 ]=2;

romper;

caso 31:rotx[0]=4;rotx[1]=5;rotx[2]=6;rotx[ 3]=5 ;

roty[0]=2;roty[1]=2;roty[2]=2;roty[3]=1;

romper; /p>

caso 32: rotx[0]=5;rotx[1]=5;rotx[2]=5;rotx[3]=6

roty[0]=1; ;roty[1 ]=2;roty[2 ]=3;roty[3]=2;

romper

caso 33: rotx[0]=6;rotx[ 1]=5 ;rotx[2]=4;rotx[3]=5;

roty[0]=1;roty[1]=1;roty[2]

=1;roty[3]=2;

romper;

caso 34: rotx[0]=6;rotx[1]=6;rotx[2]=6; rotx[3]=5;

roty[0]=3;rotx[1]=2;rotx[2]=1;rotx[3]=2;

romper;

caso 41: rotx[0]=6;rotx[1]=5;rotx[2]=5;rotx[3]=4; p>

p>

roty[0]=2;roty[1]=2;roty[2]=1;roty[3]=1

romper

caso 42: rotx[0]=5;rotx[1]=5;rotx[2]=6;rotx[3]=6;

roty[0]=3;roty [1]=2 ;roty[2]=2;roty[3]=1;

romper;

caso 51: rotx[0]=4;rotx[1] =5.rotx[ 2]=5;rotx[3]=6;

roty[0]=2;roty[1]=2;roty[2]=1;roty[3]= 1;

romper;

caso 52: rotx[0]=5;rotx[1]=5;rotx[2]=6;rotx[3 ]=6; /p>

roty[0]=1;roty[1]=2;roty[2]=2;roty[3]=3;

romper

Ejemplo 61: rotx[ 0]=4;rotx[1]=5;rotx[2]=6;rotx[3]=6;

roty[ 0]=2;roty[1]= 2;roty[2 ]=2;roty[3]=1;

romper;

caso 62: rotx[0]=5;rotx[1]=5;rotx [2]=5 ;rotx[3]=6;

roty[0]=1;roty[1]=2;roty[2]=3;roty[3]=3

ruptura;

caso 63: rotx[0]=6;rotx[1]=5;rotx[2]=4;rotx[3]=4; p>roty[0 ]=1;roty[1]=1;roty[2]=1;roty[3 ]=2;

romper

caso 64: rotx [0]=6 ;rotx[1]=6;rotx[2]=6;rotx[3]=5;

roty[0]=3;roty[1]=2;roty[ 2]=1; roty[3]=1;

romper;

caso 71: rotx[0]=6;rotx[1]=5;rotx[2]= 4;rotx[3 ]=4;

roty[0]=2;roty[1]=2;roty[2]=2;roty[3]=1; >romper;

romper; p>

Ejemplo 72.rotx[0]=5;rotx[1]=5;rotx[2]=5;rotx[3]=6; p>

roty[0]=3; roty[1]=2;roty[2]=1;roty[3]=1;

romper

caso; 73: rotx[0]=4;rotx[1 ]=5;rotx[2]=6;rotx[3]=6;

roty[0]=1;roty[1]=1; ;roty[2]=1;roty[3] =2;

romper;

caso 74: rotx[0]=6;rotx[1]=6;rotx

x[2]=6;rotx[3]=5;

roty[0]=1;roty[1]=2;roty[2]=3;roty[3]=3; /p>

break;

}

for(i=6;i<12;i++) /*Actualiza el área utilizada para mostrar el siguiente cuadrado*/ < / p>

{ gotoxy(16,i);printf("|");gotoxy(23,i);printf("|");

for(i=6;i < 12;i++)

for(u=17;u<23;u++) { getoxy(u,i);printf("%c",32 }

for (i=0;i<4;i++)

{gotoxy(rotx[i]+14,roty[i]+6);printf("%c",15}

c=bioskey(1);an=0;

if(c!=0 ) c=bioskey(0);

if(spd==1 ) { spd=0;ir a velocidad; }

ir a comenzar2;

sobre: ​​system("cls");

gotoxy(36,11); ("JUEGO TERMINADO ");

bioskey(0);

system("cls");

printf("Tu puntuación es %d\ n \n",score);

printf("Presiona 'Q' para salir\nSi quieres jugar nuevamente, presiona otras teclas. Si quieres jugar nuevamente, presiona otras teclas." )

puntuación=0;

c=bioskey(0);

if(c!=4209) ir a comenzar

}