Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while (notSolved){
- //from perspective of person looking at maze on screen
- if (((row-1)>0)&&(maze[row - 1][col] == 0)&&(visited[row][col][0]==false)){//if that space is not out of bounds and if you can go up
- visited[row][col][0] = true; //and you have not gone in that direction yet, go up
- row--;
- rowStack.push(row);
- colStack.push(col);
- path++;
- cout << "UP" << path << endl;
- }
- else if (((col+1)<size)&&(maze[row][col + 1] == 0)&&(visited[row][col][1]==false)){//else if you can go right, go right
- visited[row][col][1] = true;
- col++;
- rowStack.push(row);
- colStack.push(col);
- path++;
- cout << "RIGHT" << path << endl;
- }
- else if (((row+1)<size)&&(maze[row + 1][col] == 0)&&(visited[row][col][2]==false)){//else if you can go down, go down
- visited[row][col][2] = true;
- row++;
- rowStack.push(row);
- colStack.push(col);
- path++;
- cout << "DOWN" << path << endl;
- }
- else if (((col-1)>0)&&(maze[row][col - 1] == 0)&&(visited[row][col][3]==false)){//else if you can go left, go left
- visited[row][col][3] = true;
- col--;
- rowStack.push(row);
- colStack.push(col);
- path++;
- cout << "LEFT" << path << endl;
- }
- else{//if stuck
- //cout << "Q"<<row << " " << col << endl;
- rowStack.pop();
- colStack.pop();
- row = rowStack.top();
- col = colStack.top();
- //cout <<"A"<<row << " "<< col << endl;
- }
- if((maze[row][col] == 0) && (row == (size - 1))){//if we reached an exit
- cout << "Solution Path:" << endl;
- for (int i = 0; i < path; i++){
- cout << "row:" << rowStack.top() << " col:" << colStack.top() << endl;
- rowStack.pop();
- colStack.pop();
- }
- notSolved = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement