Advertisement
marwanpro

minesweeper

Oct 16th, 2016
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.73 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. const int DIMX = 10;
  8. const int DIMY = 10;
  9. const int BOMB = 12;
  10. int glX = 0;
  11. int glY = 0;
  12. int randInt(int min, int max) { return min + (rand() % (int)(max - min + 1)); }
  13. struct mCase;
  14. void init(mCase table[DIMX][DIMY]);
  15. void print(mCase table[DIMX][DIMY]);
  16. //struct table;
  17.  
  18.  
  19.  
  20. int main(void)
  21. {
  22.     mCase table[DIMX][DIMY];
  23.     init(table);
  24.     print(table);
  25.     system("pause");
  26.     return 0;  
  27. }
  28.  
  29.  
  30. struct mCase
  31. {
  32.     int x;
  33.     int y;
  34.     int nearBomb = 0;
  35.     bool isBomb = false;
  36.     bool isVisible = true;
  37.     bool isDisplayed = false;
  38.     bool isFlagged = false;
  39.  
  40.     void init()
  41.     {
  42.         x = glX;
  43.         y = glY;
  44.         nearBomb = 0;
  45.         if (x == 0 || y == 0 || x == DIMX || y == DIMY) isVisible == false;
  46.         isFlagged = false;
  47.         isBomb = false;
  48.     }
  49. };
  50.  
  51.  
  52. void init(mCase table[DIMX][DIMY])
  53. {
  54.     // Just calling init
  55.     for (glX = 0; glX < DIMX; glX++)
  56.     {
  57.         for (glY = 0; glY < DIMY; glY++)
  58.         {
  59.             table[glX][glY].init();
  60.         }
  61.     }
  62.  
  63.     // Placing bombs
  64.     for (int i = 0; i < BOMB; i++)
  65.     {
  66.         int x = randInt(1, DIMX - 1);
  67.         int y = randInt(1, DIMY - 1);
  68.         if (table[x][y].isBomb == false) table[x][y].isBomb = true;
  69.         else i--;
  70.     }
  71.  
  72.     // Count near bombs
  73.     for (glX = 1; glX < DIMX - 1; glX++)
  74.     {
  75.         for (glY = 1; glY < DIMY - 1; glY++)
  76.         {
  77.             for (int x = glX - 1; x < 1; x++)
  78.             {
  79.                 for (int y = glY - 1; y < 1; y++)
  80.                 {
  81.                     if (table[x][y].isBomb = true) table[x][y].nearBomb++;
  82.                 }
  83.             }
  84.         }
  85.     }
  86.  
  87. }
  88.  
  89.  
  90. void print(mCase table[DIMX][DIMY])
  91. {
  92.  
  93.     for (glX = 1; glX < DIMX - 1; glX++)
  94.     {
  95.         for (glY = 1; glY < DIMY - 1; glY++)
  96.         {
  97.             if (table[glX][glY].isBomb) cout << 'B';
  98.             else cout << table[glX][glY].nearBomb;
  99.             cout << " ";
  100.         }
  101.         cout << endl;
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement