33 for(
int i = 0; i <
NUM_ROWS/2; i++) {
34 for(
int j = 0; j <
NUM_COLS/2; j++) {
35 board[i][j] =
new Square(quarterBoard[i][j], i, j);
40 for(
int i = 0; i <
NUM_ROWS/2; i++) {
41 for(
int j = 0; j <
NUM_COLS/2; j++) {
43 board[i][j2] =
new Square(quarterBoard[i][j], i, j2);
48 for(
int i = 0; i <
NUM_ROWS/2; i++) {
49 for(
int j = 0; j <
NUM_COLS/2; j++) {
51 board[i2][j] =
new Square(quarterBoard[i][j], i2, j);
56 for(
int i = 0; i <
NUM_ROWS/2; i++) {
57 for(
int j = 0; j <
NUM_COLS/2; j++) {
60 board[i2][j2] =
new Square(quarterBoard[i][j], i2, j2);
65 for(
int j = 0; j <
NUM_COLS/2; j++) {
74 for(
int j = 0; j <
NUM_ROWS/2; j++) {
86 Square* currSquare =
nullptr;
89 currSquare = board[i][j];
91 currSquare->
setLeft(board[i][j - 1]);
94 currSquare->
setRight(board[i][j + 1]);
97 currSquare->
setAbove(board[i - 1][j]);
100 currSquare->
setBelow(board[i + 1][j]);
146 currSquare = board[i][j];
148 if(i == 7 && j == 7) {
153 switch(currSquare->
getType()) {
216 throw string(
"Invalid row number\n");
218 else if (c < 0 || c >
NUM_COLS - 1) {
219 throw string(
"Invalid column number\n");
222 Square* curr = board[r][c];
248 auto it = tilesInStr.begin();
251 vector<Tile*> placed;
253 while(it != tilesInStr.end()) {
255 if(placeTile(*it, currRow, currCol++)) {
256 placed.push_back(*it);
260 else if(dir ==
'v') {
261 if(placeTile(*it, currRow++, currCol)) {
262 placed.push_back(*it);
267 throw(
string(
"Invalid direction\n"));
275 for(
unsigned long i = 0; i < placed.size(); i++) {
276 rack->
addTile(retrieve(currRow, currCol++));
279 else if(dir ==
'v') {
280 for(
unsigned long i = 0; i < placed.size(); i++) {
281 rack->
addTile(retrieve(currRow++, currCol));
284 for(
unsigned long i = placed.size(); i < tilesInStr.size(); i ++) {
287 throw(err +
" Because some of the tiles won't fit on the board\n");
304 if(!board[r][c]->isEmpty()) {
305 t = board[r][c]->getTile();
306 board[r][c]->setTile(
nullptr);
323 if(r > -1 && r < NUM_ROWS && c > -1 && c <
NUM_COLS) {
327 throw(
string(
"Square out of bounds\n"));
bool placeTile(Tile *t, int r, int c)
Tile * retrieve(int r, int c)
void placeTileStr(Rack *rack, std::vector< Tile * > tilesInStr, int r, int c, char dir)
Square * getSquare(int r, int c)
void setSquare(Square *s)
std::string getLetterStr()
void PINK_BG(std::string x)
void BOARD_COLOURS(std::string x)
void RED_BG(std::string x)
void DARK_BLUE_BG(std::string x)
void BOLD_WHITE_FG(std::string x)
void TILE_COLOURS(std::string x)
void LIGHT_BLUE_BG(std::string x)