summaryrefslogtreecommitdiff
path: root/Board.h
diff options
context:
space:
mode:
authorDaniel Jones <admin@danieljon.es>2020-06-12 00:03:37 +0930
committerDaniel Jones <admin@danieljon.es>2020-06-12 00:03:37 +0930
commit6739115f07b39da3ed59572faf393f9846bd4784 (patch)
treefef79a608906f46267b0e7e498cc81e058579aa8 /Board.h
parent49d97e71dae1955317a316cea16f9987585ef256 (diff)
downloadfoxminesweeper-6739115f07b39da3ed59572faf393f9846bd4784.tar.gz
foxminesweeper-6739115f07b39da3ed59572faf393f9846bd4784.zip
basic game working
Diffstat (limited to 'Board.h')
-rw-r--r--Board.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/Board.h b/Board.h
index 64a3571..55e1f09 100644
--- a/Board.h
+++ b/Board.h
@@ -18,21 +18,34 @@
#include <vector>
#include <memory>
#include <cstdio>
+#include <cstdlib>
+#include <time.h>
#include "Tile.h"
class Board
{
public:
- Board(int width, int height);
+ Board(int width, int height, int minecount);
~Board();
int get_tile_count(){ return tilecount; };
Tile *get_tile_at(int x, int y);
bool reveal_tile_at(int x, int y);
void new_game(int x, int y);
+ bool is_game_running() { return this->game_running; };
+ bool is_game_won() { return this->game_won; };
+ bool check_win();
private:
std::vector<std::shared_ptr<Tile>> tiles;
+ void generate_mines();
+ void retrieve_neighbors();
+ void count_neighbor_mines(Tile *tile);
+ bool reveal_neighbor_tiles(int x, int y);
+ bool game_won;
+ void reveal_all_mines();
int tilecount;
+ int minecount;
int width;
int height;
+ bool game_running;
};
#endif