Advertisement
ithoran

Untitled

Nov 24th, 2015
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.30 KB | None | 0 0
  1. // Minesweeper.h:
  2. #include <iostream>
  3. using namespace std;
  4. class Minesweeper {
  5. private:
  6.     int n;
  7.     int m;
  8.     bool** a;
  9. public:
  10.     Minesweeper();
  11.     Minesweeper(int n, int m);
  12.     ~Minesweeper();
  13.     int brVrsta() {
  14.         return n;
  15.     }
  16.     int brKolona() {
  17.         return m;
  18.     }
  19.     void ucitajMinesweeper();
  20.     void ispisiMinesweeper();
  21.     int opasnostPolja(int brV, int brK);
  22.     void operator++(int);
  23.     void operator--(int);
  24.     void operator++();
  25.     void operator--();
  26.     friend istream& operator>>(istream& str, Minesweeper& m);
  27.     friend ostream& operator<<(ostream& str, Minesweeper& m);
  28. };
  29.  
  30. // Minesweeper.cpp:
  31. #include "Minesweeper.h"
  32. #include <iostream>
  33. using namespace std;
  34. Minesweeper::Minesweeper(int n, int m) {
  35.     this->n = n;
  36.     this->m = m;
  37.     a = new bool*[n];
  38.     for (int i = 0; i < n; i++) {
  39.         a[i] = new bool[m];
  40.     }
  41. }
  42. Minesweeper::Minesweeper() {
  43.     n = 10;
  44.     m = 10;
  45. }
  46. Minesweeper::~Minesweeper() {
  47.     if (a) {
  48.         for (int i = 0; i < n; i++) {
  49.             delete [] a[i];
  50.         }
  51.         delete [] a;
  52.     }
  53. }
  54. int Minesweeper::opasnostPolja(int x, int y) {
  55.     int i,j,br = 0;
  56.     if (a[x - 1][y - 1] == true) {
  57.         return -1;
  58.     }
  59.     else {
  60.         for (i = 0; i < 3; i++) {
  61.             for (j = 0; j < 3; j++) {
  62.                 if (x - i >= 0 && x - i < n && y - j >= 0 && y - j < m) {
  63.                     if (a[x - i][y - j] == true) {
  64.                         br++;
  65.                     }
  66.                 }
  67.             }
  68.         }
  69.     }
  70.     return br;
  71. }
  72. void Minesweeper::ucitajMinesweeper() {
  73.     cout << "Unesite matricu " << n << " x " << m << endl;
  74.     for (int i = 0; i < n; i++) {
  75.         for (int j = 0; j < m; j++) {
  76.             cin >> a[i][j];
  77.         }
  78.     }
  79. }
  80. void Minesweeper::ispisiMinesweeper() {
  81.     for (int i = 0; i < n; i++) {
  82.         for (int j = 0; j < m; j++) {
  83.             cout << a[i][j];
  84.         }
  85.         cout << endl;
  86.     }
  87. }
  88. void Minesweeper::operator++(int) {
  89.     int pom;
  90.     for (int i = 0; i < n; i++) {
  91.         pom = a[i][m - 1];
  92.         for (int j = m - 1; j > 0; j--) {
  93.             a[i][j] = a[i][j - 1];
  94.         }
  95.         a[i][0] = pom;
  96.     }
  97. }
  98. void Minesweeper::operator--(int) {
  99.     int pom;
  100.     for (int i = 0; i < n; i++) {
  101.         pom = a[i][0];
  102.         for (int j = 0; j < m - 1; j++) {
  103.             a[i][j] = a[i][j + 1];
  104.         }
  105.         a[i][m - 1] = pom;
  106.     }
  107. }
  108. void Minesweeper::operator++() {
  109.     int pom;
  110.     for (int j = 0; j < m; j++) {
  111.         pom = a[n - 1][j];
  112.         for (int i = n - 1; i > 0; i--) {
  113.             a[i][j] = a[i - 1][j];
  114.         }
  115.         a[0][j] = pom;
  116.     }
  117. }
  118. void Minesweeper::operator--() {
  119.     int pom;
  120.     for (int j = 0; j < m; j++) {
  121.         pom = a[0][j];
  122.         for (int i = 0; i < n - 1; i++) {
  123.             a[i][j] = a[i + 1][j];
  124.         }
  125.         a[n - 1][j] = pom;
  126.     }
  127. }
  128. istream& operator>>(istream& str, Minesweeper& m) {
  129.     for (int i = 0; i < m.n; i++) {
  130.         for (int j = 0; j < m.m; j++) {
  131.             str >> m.a[i][j];
  132.         }
  133.     }
  134.     return str;
  135. }
  136. ostream& operator<<(ostream& str, Minesweeper& m) {
  137.     for (int i = 0; i < m.n; i++) {
  138.         for (int j = 0; j < m.m; j++) {
  139.             str << m.a[i][j];
  140.         }
  141.         str << "\n";
  142.     }
  143.     return str;
  144. }
  145.  
  146. // main.cpp:
  147. #include "Minesweeper.h"
  148. #include <iostream>
  149. using namespace std;
  150. void main() {
  151.     Minesweeper mine(5,5);
  152.     int x, y;
  153.     cin >> mine;
  154.     cout << "Unesite vrstu i kolonu polja koje zelite da proverite \n";
  155.     cin >> x >> y;
  156.     if (mine.opasnostPolja(x,y) < 0) {
  157.         cout << mine;
  158.     }
  159.     else {
  160.         cout << "Polje je okruzeno sa " << mine.opasnostPolja(x,y) << " mina\n";
  161.     }
  162.     cout << endl;
  163.     mine++;
  164.     cout << mine;
  165.     cout << endl;
  166.     mine--;
  167.     cout << mine;
  168.     cout << endl;
  169.     ++mine;
  170.     cout << mine;
  171.     cout << endl;
  172.     --mine;
  173.     cout << mine;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement