Skip to content

Commit 6136cdd

Browse files
committed
merging master into board randomization
2 parents 7e31fe2 + cb260ea commit 6136cdd

25 files changed

+968
-49
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,5 @@ warsofcatan
1717

1818
*.d
1919
*.test
20+
/Default
21+
*.wocs

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ export SRC_HOME := $(realpath src)
33
export INCL_HOME := $(realpath include)
44
export TEST_LINK_FILES := $(realpath UnitTest++/libUnitTest++.a)
55
export TEST_INCLUDE := $(realpath UnitTest++/src)
6-
EXECUTABLE := warsofcatan
6+
export 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=c++0x
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/Deck.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Deck.h
3+
*
4+
* Created on: Feb 23, 2014
5+
* Author: ankitbhutani
6+
*/
7+
8+
#ifndef DECK_H_
9+
#define DECK_H_
10+
11+
#include <vector>
12+
#include <algorithm>
13+
#include "DevelopmentCard.h"
14+
15+
class Deck {
16+
17+
private:
18+
std::vector<DevelopmentCard*> deck;
19+
20+
public:
21+
Deck();
22+
virtual ~Deck();
23+
24+
int getSize();
25+
DevelopmentCard* drawCard();
26+
};
27+
28+
#endif /* DECK_H_ */

include/DevelopmentCard.h

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
//
2+
// DevelopmentCard.h
3+
// Catan parts
4+
//
5+
// Created by Ankit Bhutani on 2/22/14.
6+
// Copyright (c) 2014 Ankit Bhutani. All rights reserved.
7+
//
8+
9+
#ifndef Catan_parts_DevelopmentCard_h
10+
#define Catan_parts_DevelopmentCard_h
11+
12+
13+
#include "Util.h"
14+
#include "Player.h"
15+
16+
17+
enum DevCardType { KNIGHT, VICTORYPOINT, YEAROFPLENTY, MONOPOLY, ROADBUILDING };
18+
19+
20+
21+
class DevelopmentCard {
22+
23+
private:
24+
Player* owner;
25+
DevCardType type;
26+
public:
27+
DevelopmentCard(Player* player);
28+
// virtual ~DevelopmentCard();
29+
30+
virtual DevCardType getType() = 0;
31+
virtual void playCard() = 0;
32+
33+
};
34+
35+
36+
37+
class KnightCard : public DevelopmentCard {
38+
private:
39+
40+
public:
41+
KnightCard(Player* player);
42+
// virtual ~KnightCard();
43+
44+
DevCardType getType();
45+
void playCard();
46+
47+
};
48+
49+
50+
51+
class VictoryPointCard : public DevelopmentCard {
52+
public:
53+
VictoryPointCard(Player* player);
54+
// virtual ~VictoryPointCard();
55+
56+
DevCardType getType();
57+
void playCard();
58+
59+
};
60+
61+
62+
class YearOfPlentyCard : public DevelopmentCard {
63+
public:
64+
YearOfPlentyCard(Player* player);
65+
// virtual ~YearOfPlentyCard();
66+
67+
DevCardType getType();
68+
void playCard();
69+
70+
};
71+
72+
73+
74+
75+
class MonopolyCard : public DevelopmentCard {
76+
public:
77+
MonopolyCard(Player* player);
78+
// virtual ~MonopolyCard();
79+
80+
DevCardType getType();
81+
void playCard();
82+
83+
};
84+
85+
86+
87+
class RoadBuildingCard : public DevelopmentCard {
88+
private:
89+
90+
public:
91+
RoadBuildingCard(Player* player);
92+
// virtual ~RoadBuildingCard();
93+
94+
DevCardType getType();
95+
void playCard();
96+
};
97+
98+
99+
100+
101+
#endif

include/GameBoard.h

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,37 @@
55
#include <vector>
66
#include <memory>
77
#include <utility>
8-
#include <algorithm>
8+
#include <string>
9+
#include <iostream>
10+
#include <fstream>
11+
#include <cstddef>
912

1013
#include "Util.h"
1114
#include "GamePiece.h"
1215

13-
14-
15-
enum resourceType { WHEAT, SHEEP, STONE, BRICK, WOOD, DESERT };
16-
1716
class GameBoard {
1817
private:
1918
std::map<Coordinate, std::unique_ptr<GamePiece>> corners;
2019
std::map<Coordinate, std::unique_ptr<GamePiece>> resources;
2120
std::vector<std::unique_ptr<const Road>> roads;
22-
21+
22+
int constructBoardFromFile(std::ifstream &file);
23+
int constructFileFromBoard(std::ofstream &file);
2324
public:
2425
GameBoard();
2526
GameBoard(GameBoard&) = delete;
2627
~GameBoard();
2728
GameBoard& operator=(GameBoard&) = delete;
29+
30+
int save_Board(std::string filename);
31+
int load_Board(std::string filename);
32+
const std::map<Coordinate, std::unique_ptr<GamePiece>>& getResources() const;
33+
2834
std::vector<Settlement*> GetNeighboringSettlements(Coordinate location);
2935

3036
void PlaceSettlement(Coordinate location, Player& Owner);
3137

3238
void init_resources();
3339
};
3440

35-
36-
37-
38-
39-
#endif
41+
#endif

include/GamePiece.h

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
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 {
@@ -13,26 +15,29 @@ class GamePiece {
1315
GamePiece(GameBoard& board, Coordinate location);
1416
GamePiece(GamePiece&) = delete;
1517
virtual ~GamePiece();
16-
Coordinate location;
1718
//virtual GamePiece& operator=(GamePiece&) = delete;
19+
20+
Coordinate getCoordinates() const;
21+
GameBoard& getBoard();
22+
const GameBoard& getBoard() const;
23+
24+
Coordinate location;
1825
};
1926

2027
class ResourceTile : public GamePiece {
21-
private:
22-
2328
public:
2429
ResourceTile(GameBoard& board);
25-
ResourceTile(GameBoard& board, Coordinate location, int resource, int value);
30+
ResourceTile(GameBoard& board, Coordinate location, resourceType resource, int value);
2631
ResourceTile(ResourceTile&) = delete;
32+
//virtual ResourceTile& operator=(ResourceTile&) = delete;
2733

2834
//dispense resource cards to owning players
2935
void Payout();
3036

31-
int resource;
37+
resourceType resource;
3238
int value;
3339

3440
virtual ~ResourceTile();
35-
//virtual ResourceTile& operator=(ResourceTile&) = delete;
3641
};
3742

3843
class Settlement : public GamePiece {
@@ -42,8 +47,9 @@ class Settlement : public GamePiece {
4247
Settlement(GameBoard& board, Coordinate location, Player& owner);
4348
Settlement(Settlement&) = delete;
4449
virtual ~Settlement();
45-
bool city;
4650
//virtual Settlement& operator=(Settlement&) = delete;
51+
52+
bool city;
4753
};
4854

4955
class Road {
@@ -59,4 +65,5 @@ class Road {
5965
//Road& operator=(Road&) = delete;
6066
};
6167

62-
#endif
68+
#endif
69+

include/Player.h

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,66 @@
1+
//
2+
// Player.h
3+
// Catan parts
4+
//
5+
// Created by Ankit Bhutani on 2/22/14.
6+
// Copyright (c) 2014 Ankit Bhutani. All rights reserved.
7+
//
8+
19
#ifndef PLAYER_H
210
#define PLAYER_H
311

12+
13+
#include <vector>
14+
#include <string>
15+
16+
//#include "DevelopmentCard.h"
17+
18+
19+
class DevelopmentCard;
20+
class Deck;
21+
22+
//#include <ext/hash_map>
23+
//#include <unordered_map>
24+
425
class Player {
526
private:
6-
27+
std::string name;
28+
29+
std::vector<DevelopmentCard*> developmentCards;
30+
31+
int armySize;
32+
int longestRoad;
33+
int victoryPoints;
34+
35+
int resources[5];
36+
37+
738
public:
8-
Player();
9-
Player(Player&) = delete;
39+
40+
Player(std::string playerName);
1041
~Player();
11-
Player& operator=(Player&) = delete;
42+
43+
int getVictoryPoints();
44+
void updateVictoryPoints();
45+
46+
int getDevCardsInHand();
47+
48+
void buyCard(DevelopmentCard* card);
49+
void playCard(DevelopmentCard* card);
50+
51+
int getWood();
52+
int getBrick();
53+
int getOre();
54+
int getWheat();
55+
int getWool();
56+
57+
void setWood(int resource);
58+
void setBrick(int resource);
59+
void setOre(int resource);
60+
void setWheat(int resource);
61+
void setWool(int resource);
62+
63+
1264
};
1365

14-
#endif
66+
#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

0 commit comments

Comments
 (0)