Minesweeper2  V1.1.1 Game in C++ by Górka Mateusz
Board.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Vector2D.hpp"
4 #include "Field.hpp"
5 #include "Const.hpp"
6 
11 class Board {
12 private:
13  Vector2D size {0,0};
14  Field** board {NULL};
15  short int mines_init;
16  short int mines;
17  short unsigned int covered;
18 
19 public:
23  Board() = default;
24 
28  ~Board();
29 
30 public:
38  void set( unsigned int w, unsigned int h, unsigned int m );
39 
43  void restart();
44 
51  bool uncover( const Vector2D& click );
52 
59  bool action( const Vector2D& click );
60 
64  void debug() const;
65 
70  inline short int noFlaggedMines() const
71  { return mines; }
72 
73 public:
78  inline int w() const
79  { return this->size.x; }
80 
85  inline int h() const
86  { return this->size.y; }
87 
93  inline bool created() const
94  { return this->board != NULL; }
95 
102  inline bool inside( const Vector2D& pos ) const
103  { return ( pos.x >= 0 && pos.x < size.x ) && ( pos.y >= 0 && pos.y < size.y ); }
104 
105 public:
113  bool hint( Vector2D*& pos ) const;
114 
115 public:
122  inline const Field& operator () ( const Vector2D& vec ) const
123  { return board[ vec.x ][ vec.y ]; }
124 
125 private:
132  inline Field& operator () ( const Vector2D& vec )
133  { return board[ vec.x ][ vec.y ]; }
134 
138  void uncoverAll();
139 
143  void flagAll();
144 
145 private:
152  void alloc();
153 
157  void free();
158 
168  void randMines( const Vector2D& click );
169 
173  void calcFields();
174 
178  static const Vector2D AROUND[8];
179 };
Board::flagAll
void flagAll()
Set flag on the all of mines fields.
Definition: Board.cpp:316
Vector2D_t
2 dimension vector
Definition: Vector2D.hpp:9
Board::alloc
void alloc()
Create a array of board.
Definition: Board.cpp:245
Board::size
Vector2D size
Size od board.
Definition: Board.hpp:13
Board::set
void set(unsigned int w, unsigned int h, unsigned int m)
Set values on the board.
Definition: Board.cpp:208
Board::debug
void debug() const
Display board on the console to debuging.
Definition: Board.cpp:324
Board::Board
Board()=default
Construct a new Board object (default constructor)
Const.hpp
Board
Board of game.
Definition: Board.hpp:11
Board::mines_init
short int mines_init
Number of mines in beginning of the game.
Definition: Board.hpp:15
Board::free
void free()
Free memory if board array exist.
Definition: Board.cpp:234
Vector2D_t::x
T x
X coordinate of vectior.
Definition: Vector2D.hpp:11
Vector2D.hpp
Board::created
bool created() const
Is array created?
Definition: Board.hpp:93
Board::noFlaggedMines
short int noFlaggedMines() const
Number of no flagged mines on the board.
Definition: Board.hpp:70
Board::h
int h() const
Height of board.
Definition: Board.hpp:85
Board::AROUND
static const Vector2D AROUND[8]
Vectors of around coordinates.
Definition: Board.hpp:178
Board::calcFields
void calcFields()
Calculate values of field after rand mines position.
Definition: Board.cpp:285
Board::inside
bool inside(const Vector2D &pos) const
Is filel inside the board.
Definition: Board.hpp:102
Board::uncover
bool uncover(const Vector2D &click)
Uncover the choosen field.
Definition: Board.cpp:23
Board::randMines
void randMines(const Vector2D &click)
Rand mines position on the board.
Definition: Board.cpp:259
Board::mines
short int mines
Number of no flagged mines.
Definition: Board.hpp:16
Board::~Board
~Board()
Destroy the Board object.
Definition: Board.cpp:18
Board::restart
void restart()
Restart the board.
Definition: Board.cpp:223
Field.hpp
Board::w
int w() const
Width of board.
Definition: Board.hpp:78
Board::board
Field ** board
Array of fields on the board. Coordinates: Board[ x ][ y ].
Definition: Board.hpp:14
Board::uncoverAll
void uncoverAll()
Uncover all fields on the board.
Definition: Board.cpp:308
Vector2D_t::y
T y
Y coordinate of vectior.
Definition: Vector2D.hpp:12
Board::covered
short unsigned int covered
Number of covered fields.
Definition: Board.hpp:17
Board::operator()
const Field & operator()(const Vector2D &vec) const
Value of field.
Definition: Board.hpp:122
Field
Field of the board.
Definition: Field.hpp:26
Board::hint
bool hint(Vector2D *&pos) const
Find a hint for player with AI.
Definition: Board.cpp:114
Board::action
bool action(const Vector2D &click)
Do second action on selected field.
Definition: Board.cpp:76