Skip to content

Commit aa0a098

Browse files
committed
Switched to pointers for the board variable in Player. Tests stopped
crashing, but are not quite functional.
1 parent 02efb17 commit aa0a098

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

include/Player.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const int WOOL_INDEX = 4;
2727

2828
class DevelopmentCard;
2929
class Deck;
30-
30+
class GameBoard;
3131

3232

3333

@@ -40,7 +40,7 @@ class Player {
4040
int armySize;
4141
int longestRoad;
4242
int victoryPoints;
43-
std::shared_ptr<GameBoard> board;
43+
GameBoard* board;
4444
int resources[5];
4545

4646

@@ -63,6 +63,9 @@ class Player {
6363
void buyCard(std::unique_ptr<DevelopmentCard> card);
6464
std::string getName() const;
6565

66+
GameBoard* getBoard();
67+
void setBoard(GameBoard* newboard);
68+
6669
void playCard(DevelopmentCard* card);
6770

6871
bool canBuyRoad();
@@ -88,8 +91,6 @@ class Player {
8891

8992
void addResource(int resourceType, int delta);
9093

91-
std::shared_ptr<GameBoard> getBoard();
92-
9394
void accept(GameVisitor& visitor);
9495
bool operator==(const Player& player) const;
9596
};

src/Player.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,13 @@ int Player::getVictoryPoints()
118118
return victoryPoints;
119119
}
120120

121+
GameBoard* Player::getBoard(){
122+
return board;
123+
}
124+
125+
void Player::setBoard(GameBoard * newboard){
126+
board = newboard;
127+
}
121128

122129
void Player::buyCard(std::unique_ptr<DevelopmentCard> card)
123130
{
@@ -273,11 +280,6 @@ std::string Player::getName() const
273280
return name;
274281
}
275282

276-
std::shared_ptr<GameBoard> Player::getBoard(){
277-
return board;
278-
}
279-
280-
281283
void Player::addResource(int resourceType, int delta) {
282284
resources[resourceType] += delta;
283285

tests/test_DevelopmentCards.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ TEST(RoadBuildingCard_good){
1515
players.emplace_back(new Player("tester"));
1616
Player& test_player = *players[0];
1717
GameBoard * test_board = new GameBoard(std::move(players));
18+
test_player.setBoard(test_board);
19+
1820

1921

2022
RoadBuildingCard test_card(&test_player);
@@ -23,6 +25,7 @@ TEST(RoadBuildingCard_good){
2325
test_card.playCard(Coordinate(0,0), Coordinate(-1,1), Coordinate(0,0), Coordinate(1,0));
2426
CHECK(true);
2527
} catch (std::invalid_argument& e){
28+
std::cout << e.what();
2629
CHECK(false);
2730
}
2831

@@ -33,7 +36,7 @@ TEST(RoadBuildingCard_bad){
3336
players.emplace_back(new Player("tester"));
3437
Player& test_player = *players[0];
3538
GameBoard * test_board = new GameBoard(std::move(players));
36-
39+
test_player.setBoard(test_board);
3740

3841
RoadBuildingCard test_card(&test_player);
3942

0 commit comments

Comments
 (0)