Advertisement
leonardo_aly7

MineSweeper uva 10189

Jan 26th, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <string.h>
  2. int main()
  3. {
  4.  
  5.     int i, j, t, k, bombs[10000][2], indx=0, y, tc = 1;
  6.     char map[101][101];
  7.     int dx[] = {-1,-1,-1,0,0,1,1,1},
  8.         dy[] = {-1,0,1,-1,1,-1,0,1};
  9.  
  10.     while (1)
  11.     {
  12.         scanf("%d %d",&i,&j);
  13.         getchar();
  14.         if (!i|!j) return 0;
  15.         indx=0;
  16.         for(k= 0; k < i ; k++)
  17.         {
  18.             for(t=0; t<j; t++)
  19.             {
  20.  
  21.                 map[k][t] = getchar() ;
  22.                 if (map[k][t]=='*')
  23.                 {
  24.                     bombs[indx][0] = k;
  25.                     bombs[indx++][1] = t;
  26.                 }
  27.                 else map[k][t] = '0';
  28.             }
  29.             getchar();
  30.         }
  31.  
  32.             int x = 0;
  33.             for (x ; x < indx; x++)
  34.             {
  35.                 int a = bombs[x][0];
  36.                 int b = bombs[x][1];
  37.  
  38.  
  39.                 for (y=0 ; y<8 ; y++)
  40.                 {
  41.                     if (a + dx[y]>=0  && a+dx[y] < i &&  b+dy[y]>=0 && b+dy[y]<j &&  map[a+dx[y]][b+dy[y]]!='*')
  42.                     map[a+dx[y]][b+dy[y]]++;
  43.                 }
  44.  
  45.  
  46.  
  47.             }
  48.             if (tc!=1)printf("\n");
  49.             printf("Field #%d:\n",tc++);
  50.             for (y =0 ; y < i; y++) {
  51.                 printf("%s\n",map[y]);
  52.                 for (x=0;x<=j;x++)
  53.                     map[y][x] = '\0';
  54.                 }
  55.         }
  56.         return 0;
  57.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement