11#include " GameBoard.h"
22
3+ #define ADD_RESOURCE (x, y, res, val ) (resources[Coordinate(x,y)] = \
4+ std::unique_ptr<GamePiece>(new ResourceTile(*this , Coordinate(x,y), res, val)))
5+ #define DUMMY_BOARD // define to instantiate dummy board for debugging
6+
37GameBoard::GameBoard () {
4-
8+
9+ init_resources ();
10+
11+
512}
613
714GameBoard::~GameBoard () {
815
16+ }
17+ /*
18+ std::vector<GamePiece> GameBoard::GetNeighbors(Coordinate location){
19+ std::vector<GamePiece> v;
20+ for (int i = -1; i < 1; i++)
21+ {
22+ Settlement* sett = dynamic_cast<Settlement*>(&(corners[Coordinate(location.first + i, location.second)]));
23+ if (sett != 0)
24+ {
25+ v.insert(sett)
26+ }
27+ Settlement sett = dynamic_cast<Settlement*>(corners[Coordinate(location.first + i, location.second - i)]);
28+ if (sett != 0)
29+ {
30+ v.insert(sett) }
31+ Settlement sett = dynamic_cast<Settlement*>(corners[Coordinate(location.first, location.second - i)]);
32+ if (sett != 0)
33+ {
34+ v.insert(sett)
35+ }
36+ }
37+ }
38+
39+ &/
40+
41+ /* initialize board with a set of resources. Right now, just creates a static tile arrangement to test
42+ URL: http://images.fanpop.com/images/image_uploads/Differents-Boards-settlers-of-catan-521934_1157_768.jpg*/
43+
44+ void GameBoard::init_resources ()
45+ {
46+
47+
48+ #ifdef DUMMY_BOARD
49+ ADD_RESOURCE (0 , 1 , BRICK, 2 );
50+ ADD_RESOURCE (-2 , 2 , SHEEP, 5 );
51+ ADD_RESOURCE (2 , 0 , WOOD, 6 );
52+ ADD_RESOURCE (-3 , 3 , DESERT, 0 );
53+ ADD_RESOURCE (-1 , 3 , SHEEP, 10 );
54+ ADD_RESOURCE (1 , 2 , WHEAT, 9 );
55+ ADD_RESOURCE (3 , 1 , WHEAT, 3 );
56+ ADD_RESOURCE (-4 , 6 , WOOD, 8 );
57+ ADD_RESOURCE (-2 , 5 , SHEEP, 3 );
58+ ADD_RESOURCE (0 , 4 , STONE, 11 );
59+ ADD_RESOURCE (2 , 3 , STONE, 4 );
60+ ADD_RESOURCE (4 , 2 , SHEEP, 8 );
61+ ADD_RESOURCE (-3 , 7 , BRICK, 4 );
62+ ADD_RESOURCE (-1 , 6 , WHEAT, 6 );
63+ ADD_RESOURCE (1 , 5 , WOOD, 5 );
64+ ADD_RESOURCE (3 , 4 , BRICK, 10 );
65+ ADD_RESOURCE (-2 , 8 , WOOD, 11 );
66+ ADD_RESOURCE (0 , 7 , STONE, 12 );
67+ ADD_RESOURCE (2 , 6 , WHEAT, 9 );
68+ #endif
69+
70+
71+ }
72+
73+ void GameBoard::PlaceSettlement (Coordinate location, Player& Owner){
74+ corners[location] = std::unique_ptr<GamePiece>(new Settlement (*this , location, Owner));
975}
0 commit comments