|
|
@@ -1,46 +0,0 @@
|
|
|
-#pragma once
|
|
|
-
|
|
|
-//#include <emmintrin.h>
|
|
|
-#include <sigc++/signal.h>
|
|
|
-#include <vector>
|
|
|
-#include <cstdlib>
|
|
|
-#include <ctime>
|
|
|
-#include <memory>
|
|
|
-
|
|
|
-struct Cell {
|
|
|
- bool isFlagged;
|
|
|
- bool isCleared;
|
|
|
- bool isBomb;
|
|
|
- int bombsNearby;
|
|
|
- Cell(): isFlagged(false), isCleared(false), isBomb(false), bombsNearby(-1) {};
|
|
|
-};
|
|
|
-
|
|
|
-class MineField {
|
|
|
-
|
|
|
- std::vector<std::shared_ptr<Cell>> m_cells;
|
|
|
- int m_rows;
|
|
|
- int m_cols;
|
|
|
- int m_totalMines;
|
|
|
- int m_remainingFlags;
|
|
|
- bool m_exploded;
|
|
|
- void computeBombsNearby(int x, int y);
|
|
|
- void openNeighboorhood(int x, int y);
|
|
|
- void setClearCell(int x, int y);
|
|
|
-
|
|
|
-public:
|
|
|
- MineField(int cols, int rows, int mines);
|
|
|
- void initBombs(int x, int y);
|
|
|
- bool isBomb(int x, int y);
|
|
|
- bool isFlagged(int x, int y);
|
|
|
- bool isCleared(int x, int y);
|
|
|
- bool clearCell(int x, int y);
|
|
|
- int bombsNearby(int x, int y);
|
|
|
- bool isGameOver() {return m_exploded; };
|
|
|
- int getCols() {return m_cols; };
|
|
|
- int getRows() {return m_rows; };
|
|
|
- bool toggleFlag(int x, int y);
|
|
|
- int getRemainingFlags() {return m_remainingFlags; };
|
|
|
- int getTotalMines() {return m_totalMines; };
|
|
|
- sigc::signal<void(int, int)> clearCellSignal;
|
|
|
- sigc::signal<void(int)> remainingFlagsChangedSignal;
|
|
|
-};
|