Board should be using unit vis values not unit type values
This commit is contained in:
parent
c5ef2a5ee2
commit
5ca0fc3e23
2 changed files with 13 additions and 13 deletions
|
@ -13,7 +13,7 @@ CBoard::CBoard( unsigned int c, unsigned int r )
|
||||||
|
|
||||||
|
|
||||||
// constructor
|
// constructor
|
||||||
CBoard::CBoard( unsigned int c, unsigned int r, vunitType_c&& b )
|
CBoard::CBoard( unsigned int c, unsigned int r, vunitVis_c&& b )
|
||||||
: cols ( c )
|
: cols ( c )
|
||||||
, rows ( r )
|
, rows ( r )
|
||||||
, total ( rows * cols )
|
, total ( rows * cols )
|
||||||
|
@ -23,7 +23,7 @@ CBoard::CBoard( unsigned int c, unsigned int r, vunitType_c&& b )
|
||||||
}
|
}
|
||||||
|
|
||||||
// print get a slot on the board
|
// print get a slot on the board
|
||||||
unitType_c CBoard::get( const unsigned int c, const unsigned int r ) const
|
unitVis_c CBoard::get( const unsigned int c, const unsigned int r ) const
|
||||||
{
|
{
|
||||||
if ( (r >= rows) || (c >= cols) )
|
if ( (r >= rows) || (c >= cols) )
|
||||||
return square_invalid;
|
return square_invalid;
|
||||||
|
@ -32,12 +32,12 @@ unitType_c CBoard::get( const unsigned int c, const unsigned int r ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get a square on the board
|
// Get a square on the board
|
||||||
unitType_c CBoard::set( const unsigned int c, const unsigned int r , const unitType_c n )
|
unitVis_c CBoard::set( const unsigned int c, const unsigned int r , const unitVis_c n )
|
||||||
{
|
{
|
||||||
if ( (r >= rows) || (c >= cols) )
|
if ( (r >= rows) || (c >= cols) )
|
||||||
return square_invalid;
|
return square_invalid;
|
||||||
|
|
||||||
unitType_c old = board[r*c];
|
unitVis_c old = board[r*c];
|
||||||
board[r*c] = n;
|
board[r*c] = n;
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
18
game/board.h
18
game/board.h
|
@ -7,11 +7,11 @@
|
||||||
#include <limits> // std::numeric_limits
|
#include <limits> // std::numeric_limits
|
||||||
#include <vector> // std::vector
|
#include <vector> // std::vector
|
||||||
|
|
||||||
typedef std::vector< unitType_c > vunitType_c;
|
typedef std::vector< unitVis_c > vunitVis_c;
|
||||||
|
|
||||||
// Invalid value for the board square
|
// Invalid value for the board square
|
||||||
constexpr unitType_c square_invalid = std::numeric_limits<unitType_c>::max();
|
constexpr unitVis_c square_invalid = std::numeric_limits<unitVis_c>::max();
|
||||||
constexpr unitType_c square_empty = ' ';
|
constexpr unitVis_c square_empty = ' ';
|
||||||
|
|
||||||
// Class to store simple data about a board
|
// Class to store simple data about a board
|
||||||
class CBoard
|
class CBoard
|
||||||
|
@ -26,7 +26,7 @@ public:
|
||||||
CBoard( unsigned int c, unsigned int r );
|
CBoard( unsigned int c, unsigned int r );
|
||||||
|
|
||||||
// constructor
|
// constructor
|
||||||
CBoard( unsigned int c, unsigned int r, vunitType_c&& b );
|
CBoard( unsigned int c, unsigned int r, vunitVis_c&& b );
|
||||||
|
|
||||||
// Default destructor
|
// Default destructor
|
||||||
~CBoard() = default;
|
~CBoard() = default;
|
||||||
|
@ -35,20 +35,20 @@ public:
|
||||||
inline void clear() { fill(square_empty); }
|
inline void clear() { fill(square_empty); }
|
||||||
|
|
||||||
// fill the board
|
// fill the board
|
||||||
inline void fill(unitType_c v) { std::fill(board.begin(),board.end(),v); };
|
inline void fill(unitVis_c v) { std::fill(board.begin(),board.end(),v); };
|
||||||
|
|
||||||
// Get a square on the board
|
// Get a square on the board
|
||||||
unitType_c get( const unsigned int c, const unsigned int r ) const;
|
unitVis_c get( const unsigned int c, const unsigned int r ) const;
|
||||||
|
|
||||||
// Get the full board
|
// Get the full board
|
||||||
inline const vunitType_c& get() const { return board; };
|
inline const vunitVis_c& get() const { return board; };
|
||||||
|
|
||||||
// Get a square on the board
|
// Get a square on the board
|
||||||
unitType_c set( const unsigned int c, const unsigned int r , const unitType_c n );
|
unitVis_c set( const unsigned int c, const unsigned int r , const unitVis_c n );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
vunitType_c board; // Board data storage
|
vunitVis_c board; // Board data storage
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_BOARD_H_
|
#endif //_BOARD_H_
|
Loading…
Add table
Reference in a new issue