Advertisement
pmanriquez93

Dont Get Samoel

Jun 20th, 2014
513
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.89 KB | None | 0 0
  1. /*
  2.  * File:   main.c
  3.  * Author: alulab11
  4.  *
  5.  * Created on 20 de junio de 2014, 11:31 AM
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #define MAX 8
  11.  
  12. /*void imprimirTablero(char A[MAX][MAX],int tam){
  13.     int i,j;
  14.     for(i=0;i<tam;i++){
  15.         for(j=0;j<tam;j++){
  16.             printf("%c",A[i][j]);
  17.         }
  18.     }
  19.     printf("\n");
  20. }*/
  21.  
  22. int esValido(char A[MAX][MAX],int tam, int fil, int col){
  23.     int i;
  24.     if (A[fil][col]== 'X')
  25.         return 0;
  26.     for(i=col-1;i>=0;i--){
  27.         if (A[fil][i] == 'X') break;
  28.         if (A[fil][i] == 'T') return 0;
  29.     }
  30.     for(i=fil-1;i>=0;i--){
  31.        if (A[i][col] == 'X') break;
  32.        if (A[i][col] == 'T') return 0;
  33.     }
  34.     return 1;    
  35.    
  36. }
  37.    
  38.  
  39. void dontGetRooked(int fil, int col, char A[MAX][MAX],int tam,
  40.                   int *cantTorres, int *maxTorres){
  41.     int nuevoX,nuevoY;
  42.     if (col == tam){
  43.         if(*cantTorres>*maxTorres)
  44.             *maxTorres = *cantTorres;
  45.         return;
  46.     }
  47.     if (fil = tam){
  48.         nuevoY++;
  49.         nuevoX=0;
  50.     }else{
  51.         nuevoX++;
  52.     }
  53.     if (esValido(A,tam,fil,col)){
  54.         A[fil][col] = 'T';
  55.         (*cantTorres)++;
  56.         dontGetRooked(nuevoX,nuevoY,A,tam,cantTorres,maxTorres);
  57.         A[fil][col]='.';
  58.         (*cantTorres)--;
  59.     }
  60.     dontGetRooked(nuevoX,nuevoY,A,tam,cantTorres,maxTorres);        
  61.     return;
  62. }
  63.  
  64. /*
  65.  *
  66.  */
  67. int main(int argc, char** argv) {
  68.     char c;
  69.     int tam;
  70.     char A[MAX][MAX];
  71.     while(scanf("%d",&tam) != EOF){
  72.         if (tam>0){
  73.                 int i,j;
  74.                 for (i=0;i<tam;i++){
  75.                         for(j=0;j<tam;j++){
  76.                                 scanf(" %c",&c);
  77.                                 A[i][j]=c;
  78.                          }
  79.                 }
  80.                 dontGetRooked(0,0,A,tam,0,0);
  81.         }
  82.     }
  83.     //imprimirTablero(A,tam);
  84.     return (EXIT_SUCCESS);  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement