int countMines(board_t * b, int x, int y) {
  //WRITE ME!
  int count = 0;
  int i,j;
  for (i = - 1; i <  2; i++) {
    for (j = - 1; j<  2; j++) {
      if ((y + i) >= 0 && (y + i) < b->height 
	  && (x + j) >= 0 && (x + j) < b->width
	  &&( i != 0 || j != 0)) {					    					    
	if (IS_MINE(b->board[y + i][x + j])) {
	count++;
	}
      }
    }
  }
  return count;
}
예제 #2
0
int countMines(board_t * b, int x, int y) {
  //WRITE ME!
  int count=0;
  //  int h= b->height;
  // int w= b->width;
  /*  if((x==0 && y==0))//(x==0 && (y==((b->w)-1))) || (x==(b->h)-1) && (y==(b->w)-1))
    {
      if(IS_MINE(b->board[x+1][y]))
	count++;
      if(IS_MINE(b->board[x][y+1]))
	count++;
      if(IS_MINE(b->board[x+1][y+1]))
	count++;
    }
  else if(x==(h-1) && y==0)
    {
      if(IS_MINE(b->board[x-1][y]))
	count++;
      if(IS_MINE(b->board[x][y+1]))
	count++;
      if(IS_MINE(b->board[x-1][y+1]))
	count++;
    }
 else if(x==(h-1) && y==(w-1))
    {
      if(IS_MINE(b->board[x][w-1]))
	count++;
      if(IS_MINE(b->board[x-1][w]))
	count++;
      if(IS_MINE(b->board[x-1][w-1]))
	count++;
    }
 else if(x==0 && (y==w-1))
    {
      if(IS_MINE(b->board[x][y-1]))
	count++;
      if(IS_MINE(b->board[x+1][y]))
	count++;
      if(IS_MINE(b->board[x+1][y+1]))
	count++;
	}
  else
   {*/
     for(int i=y-1;i<y+2;i++)
       {
	 for(int j=x-1;j<x+2;j++)
	   {
	     if((i>=0) && (i<=b->height-1) && (j>=0) && (j<=b->width-1))
	       {
		 count+=(IS_MINE(b->board[i][j]));
	   }
       }
       }     /* }
    if(IS_MINE(b->board[x-1][y]))
       count++;
       if(IS_MINE(b->board[x-1][y+1]))
       count++;
        if(IS_MINE(b->board[x][y-1]))
       count++;
	 if(IS_MINE(b->board[x][y+1]))
       count++;
	  if(IS_MINE(b->board[x+1][y-1]))
       count++;
	   if(IS_MINE(b->board[x+1][y]))
       count++;
	    if(IS_MINE(b->board[x+1][y+1]))
       count++;
	     
       }*/       
  return count;
}