-
Notifications
You must be signed in to change notification settings - Fork 0
/
Space.cpp
142 lines (137 loc) · 3.79 KB
/
Space.cpp
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*************************************************************
** Program name: Space.cpp
** Author: Ben Fridkis
** Date: 6/1/2017
** Description: Member function definitions of the Space base
class.
**************************************************************/
#include "Space.hpp"
const int BOARDSIZE = 25;
/*******************************************
Constructor
Constructor to establish all spaces
with a name and provide Player* to
access all Player public member
functions without needing to pass
a Player* to functions within
Space class that use them.
********************************************/
Space::Space(Player* player, int spaceCode,
int difficultyLevel, bool hasRaft)
{
thePlayer = player;
this->spaceCode = spaceCode;
}
/*********************************************
getSpaceBoard
Accessor to return a double pointer to the
spaceBoard 2D array.
**********************************************/
char** Space::getSpaceBoard()
{
return spaceBoard;
}
/*********************************************
getSpacePointer
Accessor to return one of the Space pointers
(which point to the adjacent spaces on the
overall game board) based on the direction
parameter passed.
**********************************************/
Space* Space::getSpacePointer(char direction)
{
if (direction == 'I')
{
return northSpace;
}
else if (direction == 'K')
{
return southSpace;
}
else if (direction == 'L')
{
return eastSpace;
}
else
{
return westSpace;
}
}
/******************************************
getSpaceItems
Accessor to return a reference to the
vector of Item pointers (spaceItems)
data memeber.
*******************************************/
vector<Item*>& Space::getSpaceItems()
{
return spaceItems;
}
/**********************************************
setNorthSpacePointer
Function to assign value to northSpace data
member (which indicates the Space immediately
above).
************************************************/
void Space::setNorthSpacePointer(Space* northSpace)
{
this->northSpace = northSpace;
}
/**********************************************
setSouthSpacePointer
Function to assign value to southSpace data
member (which indicates the Space immediately
below).
************************************************/
void Space::setSouthSpacePointer(Space* southSpace)
{
this->southSpace = southSpace;
}
/**********************************************
setEastSpacePointer
Function to assign value to eastSpace data
member (which indicates the Space immediately
below).
************************************************/
void Space::setEastSpacePointer(Space* eastSpace)
{
this->eastSpace = eastSpace;
}
/**********************************************
setWestSpacePointer
Function to assign value to westSpace data
member (which indicates the Space immediately
below).
************************************************/
void Space::setWestSpacePointer(Space* westSpace)
{
this->westSpace = westSpace;
}
/******************************************
getSpaceName
Accessor to return spaceName member.
*******************************************/
string Space::getSpaceName() const
{
return spaceName;
}
/***************************************
Destructor
Destructor to destroy all dynamically
allocated memory items.
****************************************/
Space::~Space()
{
//Deletes dynamically allocated Item
//objects.
for (unsigned i = 0; i < spaceItems.size(); i++)
{
delete spaceItems.at(i);
}
//Deletes 2D array for the space Board.
for (unsigned i = 0; i < BOARDSIZE; i++)
{
delete[] spaceBoard[i];
}
delete[] spaceBoard;
}