Skip to content

Commit e364f1c

Browse files
authored
Update table.hpp
1 parent 02f5feb commit e364f1c

1 file changed

Lines changed: 67 additions & 15 deletions

File tree

table.hpp

Lines changed: 67 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class Table
6262
coor cpuPlays(float delay = 0);
6363
coor fileMoves();
6464
coor filePlays(float delay = 0);
65-
65+
6666
vector<coor> loadFromFile(string);
6767

6868
// getter functions
@@ -78,7 +78,6 @@ class Table
7878
void setMarking(bool);
7979
void setGameMode(int);
8080
void setTurn(char);
81-
void setOpponent(char);
8281
void setUserSide(char);
8382
};
8483

@@ -89,10 +88,17 @@ Table::Table()
8988

9089
char Table::getBoard(int row, int col)
9190
{
92-
if(isOnBoard({row, col}))
93-
return board[row][col];
94-
else
95-
return '\0';
91+
try
92+
{
93+
if (isOnBoard({row, col}))
94+
return board[row][col];
95+
else
96+
throw "getBoard: Invalid row or column";
97+
}
98+
catch (const char *msg)
99+
{
100+
std::cerr << msg << '\n';
101+
}
96102
}
97103
bool Table::getMarking()
98104
{
@@ -117,26 +123,72 @@ char Table::getUserSide()
117123

118124
void Table::setBoard(int row, int col, char value)
119125
{
120-
if(isOnBoard({row, col}) && (value == BLACK || value == WHITE || value == EMPTY || value == LEGAL))
121-
board[row][col] = value;
126+
try
127+
{
128+
if (isOnBoard({row, col}) && (value == BLACK ||
129+
value == WHITE ||
130+
value == EMPTY ||
131+
value == LEGAL))
132+
board[row][col] = value;
133+
else
134+
throw "setBoard: Invalid row or column or value";
135+
}
136+
catch (const char *msg)
137+
{
138+
std::cerr << msg << '\n';
139+
}
122140
}
123141
void Table::setMarking(bool m)
124142
{
125143
this->marking = m;
126144
}
127145
void Table::setGameMode(int c)
128146
{
129-
this->gameMode = c;
147+
try
148+
{
149+
if (c == 1 || c == 2 || c == 3 || c == 4)
150+
this->gameMode = c;
151+
else
152+
throw "setGameMode: Invalid game mode";
153+
}
154+
catch (const char *msg)
155+
{
156+
std::cerr << msg << '\n';
157+
}
130158
}
131159
void Table::setTurn(char t)
132160
{
133-
this->turn = t;
134-
}
135-
void Table::setOpponent(char o)
136-
{
137-
this->opponent = o;
161+
try
162+
{
163+
if (t == BLACK)
164+
{
165+
this->turn = BLACK;
166+
this->opponent = WHITE;
167+
}
168+
else if (t == WHITE)
169+
{
170+
this->turn = WHITE;
171+
this->opponent = BLACK;
172+
}
173+
else
174+
throw "setTurn: Invalid turn";
175+
}
176+
catch (const char *msg)
177+
{
178+
std::cerr << msg << '\n';
179+
}
138180
}
139181
void Table::setUserSide(char s)
140182
{
141-
this->userSide = s;
183+
try
184+
{
185+
if (s == BLACK || s == WHITE)
186+
this->userSide = s;
187+
else
188+
throw "setUserSide: Invalid side";
189+
}
190+
catch (const char *msg)
191+
{
192+
std::cerr << msg << '\n';
193+
}
142194
}

0 commit comments

Comments
 (0)