#include <stdio.h> #include <stdlib.h> #define MAX 100 int crear_matriz(int M[][MAX]); void imprimir_matriz(int M[][MAX], int n); void nuevo_juego(int M[][MAX], int n); int analizar_juego(int M[][MAX],int n);
int main() { printf("Hello world!\n"); int M[MAX][MAX]; int n,resultado;
n=crear_matriz(M); imprimir_matriz(M,n); nuevo_juego(M,n); imprimir_matriz(M,n); resultado=analizar_juego(M,n);
printf("\nResultado arrojo el numero %d",resultado);
return 0; } int crear_matriz(int M[][MAX]) { int n=0, i,j;
puts("Ingrese el tamano de la matriz"); scanf("%d",&n);
for(i=0;i<n;i++) { for(j=0;j<n;j++) {M[i][j]=0;} } return n; } void imprimir_matriz(int M[][MAX], int n) { int i=0,j=0;
for(i=0;i<n;i++) { printf("\n"); for(j=0;j<n;j++) {printf("%d",M[i][j]);} }
} void nuevo_juego(int M[][MAX], int n) { int i,j,k; printf("\n\nDebe colocar %d alfiles",n); for(k=0;k<n;k++) { printf("\nDel 0 al %d elija la posicion 'i':",n-1); scanf("%d",&i); printf("\nDel 0 al %d elija la posicion 'j':",n-1); scanf("%d",&j); M[i][j]++;
printf("\nSiguiente reina\n"); }
puts("\nSe han colocado todos los alfiles"); } int analizar_juego(int M[][MAX],int n) { int i,j,k; int *diagS,*diagI; int tam; tam=((n*2)-3); diagS=(int*)malloc(sizeof(int)*tam); // diagS "diagonales de izq a derecha" diagI=(int*)malloc(sizeof(int)*tam); // diagI " diagonales de derecha a izq " for(k=0;k<tam;k++) { diagI[k]=0; diagS[k]=0; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(M[i][j]==1) { if(i==j)diagI[0]++;
for(k=1;k<=tam;k++) { if(i+j==k)diagS[k-1]++; } for(k=1;k<=(n-2);k++) { if((i-j)==k)diagI[k]++; if((j-i)==k)diagI[(n-2)+k]++; } } } } puts("\n"); puts("diagI:");for(k=0;k<tam;k++)printf("%d ",diagI[k]); puts("\ndiagS:");for(k=0;k<tam;k++)printf("%d ",diagS[k]); puts("\n");
for(k=0;k<tam;k++) { if(diagI[k]>=2||diagS[k]>=2) { printf("\n\nNO CUMPLE CONDICION\n\n"); getchar(); return 0; } }
return (1); }
|