Skip to content

Commit 55867d1

Browse files
committed
Added ResourceTile types and dice values
1 parent 5384a81 commit 55867d1

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

include/GamePiece.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@ class GamePiece {
1717
};
1818

1919
class ResourceTile : public GamePiece {
20+
public:
21+
enum Type { WOOD, SHEEP, ORE, BRICK, GRAIN, DESERT };
2022
private:
21-
23+
Type type;
24+
unsigned short diceValue;
2225
public:
23-
ResourceTile(GameBoard& board);
26+
ResourceTile(GameBoard& board, Type type, unsigned short diceValue);
2427
ResourceTile(ResourceTile&) = delete;
2528
virtual ~ResourceTile();
2629
virtual ResourceTile& operator=(ResourceTile&) = delete;
30+
31+
Type getType() const;
32+
unsigned short getDiceValue() const;
2733
};
2834

2935
class Settlement : public GamePiece {

src/GamePiece.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
#include "GameBoard.h"
44

5+
#include <stdexcept>
6+
7+
using std::runtime_error;
8+
59
GamePiece::GamePiece(GameBoard& board) : board(board) {
610

711
}
@@ -10,14 +14,27 @@ GamePiece::~GamePiece() {
1014

1115
}
1216

13-
ResourceTile::ResourceTile(GameBoard& board) : GamePiece(board) {
14-
17+
ResourceTile::ResourceTile(GameBoard& board, Type type, unsigned short diceValue) : GamePiece(board), type(type), diceValue(diceValue) {
18+
if(type != WOOD || type != SHEEP || type != ORE || type != BRICK || type != GRAIN || type != DESERT) {
19+
throw runtime_error("Invalid resource tile type");
20+
}
21+
if(diceValue < 2 || diceValue > 12) {
22+
throw runtime_error("Invalid dice value");
23+
}
1524
}
1625

1726
ResourceTile::~ResourceTile() {
1827

1928
}
2029

30+
ResourceTile::Type ResourceTile::getType() const {
31+
return type;
32+
}
33+
34+
unsigned short ResourceTile::getDiceValue() const {
35+
return diceValue;
36+
}
37+
2138
Settlement::Settlement(GameBoard& board, Player& owner) : GamePiece(board), owner(owner) {
2239

2340
}

0 commit comments

Comments
 (0)