Board *makeBoardOnMove(Node *current, Move thisMove, int f){ Board *newBoard; int x = thisMove.x; int y = thisMove.y; int currentX = current->b->openX; int currentY = current->b->openY; int mov; if(current->b->tile[currentX + x][currentY + y] > 0){ if((newBoard = (Board *)calloc(1, sizeof(Board))) == NULL) exit(1); insertTiles(newBoard, current->b->numbers); newBoard->tile[currentX + x][currentY + y] = current->b->tile[currentX][currentY]; newBoard->tile[currentX][currentY] = current->b->tile[currentX + x][currentY + y]; mov = newBoard->tile[currentX][currentY]; completeBoard(current->b, newBoard, mov, f); return newBoard; } return NULL; }
void Solver::createFullBoard() { setSeeds(); int unsolved = completeBoard(); std::cout << "Unsolvable boards generated: " << unsolved << std::endl; }