Advertisement
Jvsierra

10189 Minesweeper UVA

Aug 6th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define TF 100
  4.  
  5. int numBombas(char mat[TF][TF], int l, int c, int m, int n);
  6. void printaMatriz(char mat[TF][TF], int m, int);
  7.  
  8. int main()
  9. {
  10.     char mat[TF][TF];
  11.     int m, n, cont = 0, l, c;
  12.    
  13.     scanf("%d %d", &m, &n);
  14.    
  15.     while(m > 0 && n > 0)
  16.     {
  17.         for(l = 0; l < m; l++)
  18.             for(c = 0; c < n; c++)
  19.             {
  20.                 fflush(stdin);
  21.                 scanf("%c", &mat[l][c]);
  22.             }
  23.            
  24.         cont++;
  25.        
  26.         printf("Field #%d\n", cont);
  27.         printaMatriz(mat, m, n);
  28.         printf("\n");
  29.        
  30.         scanf("%d %d", &m, &n);
  31.     }
  32.  
  33. }
  34.  
  35. int numBombas(char mat[TF][TF], int l, int c, int m, int n)
  36. {
  37.     int cont = 0;
  38.    
  39.     if(l > 0)
  40.     {
  41.         if(mat[l - 1][c] == '*')
  42.             cont++;
  43.            
  44.         if(c > 0)
  45.             if(mat[l - 1][c - 1] == '*')
  46.                 cont++;
  47.                
  48.         if(c < n - 1)
  49.             if(mat[l - 1][c + 1] == '*')
  50.                 cont++;
  51.     }
  52.    
  53.     if(l < m - 1)
  54.     {
  55.         if(mat[l + 1][c] == '*')
  56.             cont++;
  57.            
  58.         if(c > 0)
  59.             if(mat[l + 1][c - 1] == '*')
  60.                 cont++;
  61.                
  62.         if(c < n - 1)
  63.             if(mat[l + 1][c + 1] == '*')   
  64.                 cont++;
  65.     }
  66.    
  67.     if(c > 0)
  68.         if(mat[l][c - 1] == '*')
  69.             cont++;
  70.            
  71.     if(c < n - 1)
  72.         if(mat[l][c + 1] == '*')
  73.             cont++;
  74.  
  75.     return cont;
  76. }
  77.  
  78.  
  79. void printaMatriz(char mat[TF][TF], int m, int n)
  80. {
  81.     int l, c;
  82.    
  83.     for(l = 0; l < m; l++)
  84.     {
  85.         for(c = 0; c < n; c++)
  86.             if(mat[l][c] != '*')
  87.                 printf("%d", numBombas(mat, l, c, m, n));
  88.             else
  89.                 printf("*");
  90.            
  91.         printf("\n");
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement