Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   minesweeper game (http://www.go4expert.com/forums/minesweeper-game-t669/)

musicmancanora4 29Mar2006 16:52

minesweeper game
 
Hi guys im making a minesweeper game and im trying to implement a function that finds the certain blank spaces next to the mines so i can add the number.


i have to Use numbers from 1-8 to mark other squares that have that number of mines adjacent to
them. Squares that don't have adjacent mines are marked as BLANK.

Code:

---------------------------
*    1  2  3  4  5  6
*  +---+---+---+---+---+---+ [ EXAMPLE 1]
* a | M | M | 1 |  |  |  |
*  +---+---+---+---+---+---+
* b | 2 | 2 | 1 |  |  |  |
*  +---+---+---+---+---+---+
* c |  |  | 1 | 1 | 1 |  |
*  +---+---+---+---+---+---+
* d |  |  | 2 | M | 2 |  |
*  +---+---+---+---+---+---+
* e |  |  | 3 | M | 4 | 1 |
*  +---+---+---+---+---+---+
* f |  |  | 2 | M | M | 1 |
*  +---+---+---+---+---+---+
* ---------------------------

Code:

#define BLANK ""
#define  MINE 'M'

void placeMines(char minefield[MAX_GRID][MAX_GRID], unsigned size)
{

  double result;
  double sizetotal;
  double roundUp;
  int seed;
  int range;
  int NoMines;
  int TotalMine;
  int i=0;
  int j=0;
  int a=0;
  int b=0;
 
  int count;
 
  char mineChar = MINE;
 
  srand(time(NULL));
  /* square root the grid number*/
 
  sizetotal = size * size;
 
  /* result is the sizetotal * 0.6*/
  result = (float)(float)sizetotal * MINE_DENSITY;
 
  /*rouding the number up 5.7 up to 6*/
  roundUp = ceil(result);
 
  /* cast it to an int to get no decimal places*/
  printf("NO MINES:%d\n",(int) roundUp);
 
 
 
 
 
  for(i=0; i<roundUp; i++)
  {
    int row, col;
    row = rand() % size;
    col = rand() % size;
    printf("%c %d %d\n",mineChar, row, col);
   
    minefield [row][col]= MINE;
   
   
    printf("\n");
  }
 
        for(i=0; i<size; i++)
  {
    for(j=0; j<size; j++)
    {
   
       
        if(minefield[i][j]==BLANK)
        {
          if(j==0)
          {
             
         
           
                for(a=0; a<size; a++)
                {
                 
                    if(minefield[i][j]==MINE)
                    {
                   
                    count++;
               
                    }
                }
               
                 
                }/* end of outter loop*/
             
             
          }
         
         
       
       
       
           
    }
     
   
       
       
   
 
  }   
             
         
         
         
       
       
       
           
   
 
  printGridMineSize(minefield, size);

}


coderzone 29Mar2006 20:26

Re: minesweeper game
 
As you have the array to hold whether its M or N then you can go ahead and see fo each N whats the value in the array on each side and get the no for that N.


All times are GMT +5.5. The time now is 05:20.