@@ -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
9089char 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}
97103bool Table::getMarking ()
98104{
@@ -117,26 +123,72 @@ char Table::getUserSide()
117123
118124void 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}
123141void Table::setMarking (bool m)
124142{
125143 this ->marking = m;
126144}
127145void 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}
131159void 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}
139181void 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