Skip to content

Commit bd58c43

Browse files
committed
Merge branch 'master' into Paul
2 parents 944ee92 + ab156b4 commit bd58c43

File tree

19 files changed

+579
-28
lines changed

19 files changed

+579
-28
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ EXECUTABLE := warsofcatan
77
ALLFILES := $(wildcard $(SRC_HOME)/*) $(wildcard $(INCL_HOME)/*)
88
export CXX := g++
99
export LD := g++
10-
export CXXFLAGS := -g -I$(INCL_HOME) -std=gnu++11
10+
export CXXFLAGS := -g -I$(INCL_HOME) -std=c++0x -Wall
1111
export LDFLAGS := -lSDL2 -lGL -lGLU
1212

1313
.PHONY: all

include/City.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef CITY_H
2+
#define CITY_H
3+
4+
class City public CornerPiece {
5+
private:
6+
7+
public:
8+
City();
9+
City(City&) = delete;
10+
~City();
11+
City& operator=(City&) = delete;
12+
};
13+
14+
#endif

include/CornerPiece.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef CORNERPIECE_H
2+
#define CORNERPIECE_H
3+
4+
class CornerPiece {
5+
private:
6+
7+
public:
8+
CornerPiece();
9+
CornerPiece(CornerPiece&) = delete;
10+
~CornerPiece();
11+
CornerPiece& operator=(CornerPiece&) = delete;
12+
};
13+
14+
#endif

include/GameBoard.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616

1717
class GameBoard {
1818
private:
19-
std::map<Coordinate, std::unique_ptr<GamePiece>> pieces;
19+
std::map<Coordinate, std::unique_ptr<GamePiece>> corners;
20+
std::map<Coordinate, std::unique_ptr<GamePiece>> resources;
2021
std::vector<std::unique_ptr<const Road>> roads;
2122

2223
int constructBoardFromFile(std::ifstream &file);
@@ -27,9 +28,16 @@ class GameBoard {
2728
GameBoard(GameBoard&) = delete;
2829
~GameBoard();
2930
GameBoard& operator=(GameBoard&) = delete;
30-
31+
3132
int save_Board(std::string filename);
3233
int load_Board(std::string filename);
34+
const std::map<Coordinate, std::unique_ptr<GamePiece>>& getResources() const;
35+
36+
std::vector<Settlement*> GetNeighboringSettlements(Coordinate location);
37+
38+
void PlaceSettlement(Coordinate location, Player& Owner);
39+
40+
void init_resources();
3341
};
3442

3543
#endif

include/GamePiece.h

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,52 @@
44
#include "Util.h"
55
#include "Player.h"
66

7+
enum resourceType { WHEAT, SHEEP, STONE, BRICK, WOOD, DESERT };
8+
79
class GameBoard;
810

911
class GamePiece {
1012
private:
1113
GameBoard& board;
1214
public:
13-
GamePiece(GameBoard& board);
15+
GamePiece(GameBoard& board, Coordinate location);
1416
GamePiece(GamePiece&) = delete;
1517
virtual ~GamePiece();
1618
//virtual GamePiece& operator=(GamePiece&) = delete;
19+
20+
Coordinate getCoordinates() const;
21+
GameBoard& getBoard();
22+
const GameBoard& getBoard() const;
23+
24+
Coordinate location;
1725
};
1826

1927
class ResourceTile : public GamePiece {
20-
private:
21-
2228
public:
2329
ResourceTile(GameBoard& board);
30+
ResourceTile(GameBoard& board, Coordinate location, resourceType resource, int value);
2431
ResourceTile(ResourceTile&) = delete;
25-
virtual ~ResourceTile();
2632
//virtual ResourceTile& operator=(ResourceTile&) = delete;
33+
34+
//dispense resource cards to owning players
35+
void Payout();
36+
37+
resourceType resource;
38+
int value;
39+
40+
virtual ~ResourceTile();
2741
};
2842

2943
class Settlement : public GamePiece {
3044
private:
3145
Player& owner;
3246
public:
33-
Settlement(GameBoard& board, Player& owner);
47+
Settlement(GameBoard& board, Coordinate location, Player& owner);
3448
Settlement(Settlement&) = delete;
3549
virtual ~Settlement();
3650
//virtual Settlement& operator=(Settlement&) = delete;
51+
52+
bool city;
3753
};
3854

3955
class Road {

include/Player.h

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
#ifndef PLAYER_H
22
#define PLAYER_H
33

4+
#include <string>
5+
6+
#include "Resources.h"
7+
48
class Player {
59
private:
6-
10+
std::string name;
11+
Resources resources;
712
public:
8-
Player();
13+
Player(const std::string& name);
914
Player(Player&) = delete;
1015
~Player();
1116
Player& operator=(Player&) = delete;
17+
18+
const std::string& getName() const;
19+
void setName(const std::string& newName);
20+
21+
const Resources& getResources() const;
22+
void setResources(const Resources& newResources);
1223
};
1324

1425
#endif

include/Renderer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
#include "GameBoard.h"
55
#include "Player.h"
66

7-
void renderBoard(GameBoard& board, Player& perspective);
7+
void renderBoard(const GameBoard& board, const Player& perspective);
88

99
#endif

include/Resources.h

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#ifndef RESOURCES_H
2+
#define RESOURCES_H
3+
4+
class Resources {
5+
public:
6+
typedef unsigned short rtype;
7+
private:
8+
rtype wood;
9+
rtype sheep;
10+
rtype grain;
11+
rtype ore;
12+
rtype brick;
13+
public:
14+
Resources();
15+
Resources(rtype wood, rtype sheep, rtype grain, rtype ore, rtype brick);
16+
Resources(const Resources&);
17+
~Resources();
18+
Resources& operator=(const Resources&);
19+
20+
rtype getWood() const;
21+
void setWood(rtype newWood);
22+
23+
rtype getSheep() const;
24+
void setSheep(rtype newSheep);
25+
26+
rtype getGrain() const;
27+
void setGrain(rtype newGrain);
28+
29+
rtype getOre() const;
30+
void setOre(rtype newOre);
31+
32+
rtype getBrick() const;
33+
void setBrick(rtype newBrick);
34+
35+
Resources operator+(const Resources&) const;
36+
Resources& operator+=(const Resources&);
37+
38+
Resources operator-(const Resources&) const;
39+
Resources& operator-=(const Resources&);
40+
41+
bool operator<(const Resources&) const;
42+
bool operator>(const Resources&) const;
43+
};
44+
45+
#endif

include/Road.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef ROAD_H
2+
#define ROAD_H
3+
4+
class Road public CornerPiece {
5+
private:
6+
7+
public:
8+
Road();
9+
Road(Road&) = delete;
10+
~Road();
11+
Road& operator=(Road&) = delete;
12+
};
13+
14+
#endif

include/Settlement.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef SETTLEMENT_H
2+
#define SETTLEMENT_H
3+
4+
class Settlement: public CornerPiece {
5+
private:
6+
7+
public:
8+
Settlement();
9+
Settlement(Settlement&) = delete;
10+
~Settlement();
11+
Settlement& operator=(Settlement&) = delete;
12+
};
13+
14+
#endif

0 commit comments

Comments
 (0)