summaryrefslogtreecommitdiff
path: root/Tile.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 /Tile.h
parent49d97e71dae1955317a316cea16f9987585ef256 (diff)
downloadfoxminesweeper-6739115f07b39da3ed59572faf393f9846bd4784.tar.gz
foxminesweeper-6739115f07b39da3ed59572faf393f9846bd4784.zip
basic game working
Diffstat (limited to 'Tile.h')
-rw-r--r--Tile.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/Tile.h b/Tile.h
index 176893f..371e121 100644
--- a/Tile.h
+++ b/Tile.h
@@ -33,12 +33,23 @@ class Tile
FLAGGED = 1 << 2,
REVEALED = 1 << 3,
};
- enum STATE get_flags() { return flags; }
- void set_flag(enum STATE flag) { this->flags = (STATE) (this->flags | flag); }
- void set_flags(enum STATE flags) { this->flags = flags; }
+ enum STATE get_flags() { return flags; };
+ void set_flag(enum STATE flag) { this->flags = (STATE) (this->flags | flag); };
+ void clear_flag(enum STATE flag) { this->flags = (STATE) (this->flags & ~flag); };
+ void toggle_flag(enum STATE flag) { this->flags = (STATE) (this->flags ^ flag); };
+ bool is_mine() { return this->flags & MINE; };
+ bool is_flagged() { return this->flags & FLAGGED; };
+ bool is_revealed() { return this->flags & REVEALED; };
+ int get_neighbor_mine_count() { return this->neighbor_mine_count; };
+ void set_neighbor_mine_count(int count) { this->neighbor_mine_count = count; };
+ Tile *get_neighbor(int i);
+
+ Tile *neighbors[8]; // one day make private with getters/setters
private:
+ void set_flags(enum STATE flags) { this->flags = flags; };
int x;
int y;
+ int neighbor_mine_count;
enum STATE flags;
};