Changed the name of some member variables to conform to the convention with

postfix underscore ("varName_").
This commit is contained in:
Stian Selnes 2007-10-15 19:57:25 +00:00
parent 608d59fb2e
commit d2f5cd2e23
5 changed files with 49 additions and 77 deletions

View File

@ -1,5 +1,5 @@
/**
* A class for a Mancala board. The following board layout is assumed
* A class for a Mancala board_. The following board_ layout is assumed
*
* Holes num:
*
@ -39,7 +39,7 @@ using namespace std;
/** Constructor.
*
* @param holes is the number of holes, including both house and store, in
* the board. Must be an even number.
* the board_. Must be an even number.
* @param seeds is the initial number of seeds per hole.
*
* @exception std::invalid_argument.
@ -56,29 +56,29 @@ Board::Board(int houses, int seeds)
{
ostringstream msg;
msg << "'holes' = " << holes << ": "
<< "The number of holes in a board must be equal";
<< "The number of holes in a board_ must be equal";
throw invalid_argument(msg.str());
}
store2 = 0;
store1 = holes / 2;
store2_ = 0;
store1_ = holes / 2;
board.reserve(holes);
board_.reserve(holes);
for (int i = 0; i < holes; ++i)
{
if (i == store1 || i == store2)
board.push_back(0);
if (i == store1_ || i == store2_)
board_.push_back(0);
else
board.push_back(seeds);
board_.push_back(seeds);
}
}
int & Board::operator[] (int hole)
{
if (hole < 0 || hole > static_cast<int>(board.size()-1))
if (hole < 0 || hole > static_cast<int>(board_.size()-1))
throw invalid_argument("argument out of range");
return board[hole];
return board_[hole];
}
@ -107,20 +107,20 @@ bool Board::sow(int house, Half playersHalf, int * endId, Board::HoleType * endT
if (seeds == 0)
return false;
board[hole] = 0;
board_[hole] = 0;
int opponentStore = getStoreHole((playersHalf == SOUTH) ? NORTH : SOUTH);
while (seeds)
{
hole = ( hole == static_cast<int>( board.size())-1 ) ? 0 : hole + 1;
hole = ( hole == static_cast<int>( board_.size())-1 ) ? 0 : hole + 1;
if (hole != opponentStore)
{
++board[hole];
++board_[hole];
--seeds;
}
}
*endType = (hole == store1 || hole == store2) ? STORE : HOUSE;
*endType = (hole == store1_ || hole == store2_) ? STORE : HOUSE;
*endId = *endType == STORE ? hole2store(hole) : hole2house(hole);
return true;
@ -131,17 +131,17 @@ bool Board::sow(int house, Half playersHalf, int * endId, Board::HoleType * endT
bool Board::isHalfEmpty(Half half) const
{
int isEmpty = true;
int hole = half == SOUTH ? store2 + 1 : store1 + 1;
int end = half == SOUTH ? store1 : store2;
int hole = half == SOUTH ? store2_ + 1 : store1_ + 1;
int end = half == SOUTH ? store1_ : store2_;
while (hole != end)
{
if (board[hole] != 0)
if (board_[hole] != 0)
{
isEmpty = false;
break;
}
hole = ( hole == static_cast<int>( board.size())-1 ) ? 0 : hole + 1;
hole = ( hole == static_cast<int>( board_.size())-1 ) ? 0 : hole + 1;
}
return isEmpty;
@ -151,19 +151,19 @@ bool Board::isHalfEmpty(Half half) const
int Board::getSeedsInHouse(int house) const
{
return board[house2hole(house)];
return board_[house2hole(house)];
}
int Board::getSeedsInStore(int store) const
{
return board[store2hole(store)];
return board_[store2hole(store)];
}
Board::Half Board::getHalf (int hole) const
{
if (hole <= store1 && hole != store2)
if (hole <= store1_ && hole != store2_)
return SOUTH;
else
return NORTH;
@ -177,11 +177,11 @@ int Board::getOppositeHole( int hole ) const
checkRange (hole);
if ( hole == 0 )
opposite = board.size() / 2;
else if ( hole == static_cast<int>(board.size()) / 2 )
opposite = board_.size() / 2;
else if ( hole == static_cast<int>(board_.size()) / 2 )
opposite = 0;
else
opposite = board.size() - hole;
opposite = board_.size() - hole;
return opposite;
}
@ -190,7 +190,7 @@ int Board::getOppositeHole( int hole ) const
int Board::hole2house(int hole) const
{
checkRange (hole);
return hole < store1 ? hole : hole - 1;
return hole < store1_ ? hole : hole - 1;
}
/**
@ -200,9 +200,9 @@ int Board::hole2house(int hole) const
int Board::hole2store(int hole) const
{
checkRange (hole);
if ( hole == store1 )
if ( hole == store1_ )
return 1;
else if ( hole == store2)
else if ( hole == store2_)
return 2;
else
return 0;
@ -210,16 +210,16 @@ int Board::hole2store(int hole) const
int Board::house2hole(int house) const
{
if (house < 1 || house > static_cast<int>(board.size()-2))
if (house < 1 || house > static_cast<int>(board_.size()-2))
throw invalid_argument("Invalid house number");
return house < store1 ? house : house + 1;
return house < store1_ ? house : house + 1;
}
int Board::store2hole(int store) const
{
if (store < 1 || store > 2)
throw invalid_argument("Invalid store number");
return store == 1 ? store1 : store2;
return store == 1 ? store1_ : store2_;
}
@ -230,9 +230,9 @@ int Board::getHole(int num, HoleType type) const
int hole;
if (type == HOUSE)
{
if (num < 1 || num > board.size() - 2)
if (num < 1 || num > board_.size() - 2)
throw invalid_argument("Invalid house number");
hole = (num < store1) ? num : num + 1;
hole = (num < store1_) ? num : num + 1;
}
else if (type == STORE)
{
@ -248,9 +248,9 @@ int Board::getStoreHole(Half half) const
{
int hole;
if (half == SOUTH)
hole = store1;
hole = store1_;
else if (half == NORTH)
hole = store2;
hole = store2_;
else
throw invalid_argument("Only store for half SOUTH and NORTH");
return hole;
@ -258,36 +258,14 @@ int Board::getStoreHole(Half half) const
size_t Board::size () const
{
return board.size();
return board_.size();
}
void Board::print(std::ostream & out) const
{
int i;
std::ostringstream s1, s2, s3;
for ( i = 1; i < static_cast<int>(board.size())/2; ++i )
{
s1 << getSeedsInHouse( board.size()-1 - i ) << "\t";
s2 << "\t";
s3 << getSeedsInHouse( i ) << "\t";
}
out << "\t" << s1.str() << "\n";
out << getSeedsInStore( 2 ) << s2.str() << "\t "<< getSeedsInStore( 1 ) << "\n";
out << "\t" << s3.str() << std::endl;
}
bool Board::checkRange( int hole ) const
{
if ( hole < 0 || hole > static_cast<int>(board.size()-1) )
if ( hole < 0 || hole > static_cast<int>(board_.size()-1) )
throw invalid_argument("Invalid hole number");
return true;
}
// Board::~Board()
// {
// delete[] board;
// }

View File

@ -12,37 +12,32 @@ public:
Board();
Board(int houses, int seeds);
// ~Board();
int & operator[] (int hole);
// bool sow(int house, Half playersHalf, int * endId, HoleType * endType);
size_t size() const;
int getSeedsInHouse(int house) const;
int getSeedsInStore(int store) const;
int getOppositeHole(int hole) const;
void print ( std::ostream & out) const;
bool isHalfEmpty(Half half) const;
int getStoreHole(Half Half) const;
int getOppositeHole(int hole) const;
int store2hole(int store) const;
int hole2store(int hole) const;
int hole2house(int hole) const;
int getStoreHole(Half Half) const;
int house2hole(int house) const;
Half getHalf(int hole) const;
size_t size() const;
Half getHalf(int hole) const;
bool isHalfEmpty(Half half) const;
private:
int store1;
int store2;
std::vector<int> board;
int store1_;
int store2_;
std::vector<int> board_;
bool checkRange (int hole) const;
};
#endif

View File

@ -23,7 +23,6 @@ public:
virtual std::string getActivePlayerName() const;
virtual std::string getPlayer1Name () const;
virtual std::string getPlayer2Name () const;
// Board & getBoard() const;
virtual bool makeMove( int house );
virtual int getSeedsInHouse( int house ) const;

View File

@ -16,7 +16,7 @@ void Session::newGame ()
{
// todo: do this completely different
// delete game_;
Game * g = new Game( factory.createKalah(), 12);
Game * g = new Game( factory_.createKalah(), 12);
g->player1("P1", true);
g->player2("P2", true);
game_ = g;

View File

@ -16,7 +16,7 @@ public:
private:
IGame * game_;
GuiWrapper * gui_;
EngineFactory factory;
EngineFactory factory_;
};
#endif