Ejercicio 1. LeeMensaje(char mat[N][N]){ char texto[N*N]; int i, j, borde = 0, k = 0; while(k<(N*N)){ for(j=borde;j<(N-borde);j++){ texto[k]=mat[borde][j]; k++; } for(i=borde+1;i<(N-borde);j++){ texto[k]=mat[i][N-borde-1]; k++; } for(j=N-2-borde;j>=borde;j--){ texto[k]=mat[N-1-borde][j]; k++; } for(i=N-2-borde;i>=(borde+1);i--){ texto[k]=mat[i][borde]; k++; } borde++; } texto[k]='\0'; printf("Mensaje oculto %s\n",texto); } Ejercicio 2. void Same(int fila,int colm,int mat[M][N]){ int i,j,color=mat[fila][col]; if(mat[fila][col]==0) return; for(i=fila;i>=0 && mat[i][col]==color;i--) mat[i][col]=0; for(j=col+1;j=0 && mat[fila][j]==color;j--) mat[fila][j]=0; revisa(mat); } void revisa(int mat[M][N]){ int i,j,cont=0,k,l,aux; for(j=0;j0 && cont!=M)//las piezas caen verticalmente efecto_caida(mat,j); else if(cont==M){ for(k=0;k0;i--){ if(mat[i][col]==0){ for(j=i;j>0;j--){ aux=mat[j][col]; mat[j][col]=mat[j-1][col]; mat[j-1][col]=aux; } i++; } } }