-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCatan.hpp
48 lines (43 loc) · 1.19 KB
/
Catan.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
* Email: sam.lazareanu@gmail.com
* ID: ****6281
* @SamuraiPolix - Samuel Lazareanu
*/
#pragma once
// #include "Board.hpp"
// #include "Player.hpp"
#include <vector>
#include <iostream>
using std::vector;
namespace ariel {
class Player;
class Board;
class DevelopmentCard;
class Catan
{
// private members
vector<Player*> players;
int currPlayer; // index of player in players, with current turn
Board *board;
vector<DevelopmentCard*> developmentCards;
// private methods
void initCards();
public:
Catan(Player& p1, Player& p2, Player& p3);
~Catan();
vector<Player*> getPlayers();
Player& getCurrentPlayer();
void ChooseStartingPlayer();
void ChooseStartingPlayer(size_t index); // Used in demo and tests to set starting player
Board* getBoard();
void rolledSeven();
void printBoard();
void printPlayers();
int printWinner();
void nextPlayer();
void printPlayersExceptCurrent();
size_t addDevelopmentCard(Player& player);
void giveResources(int diceRoll);
Player& getPlayerById(int id);
};
}