Thread: How do I pop off only the unwanted moves?

1. How do I pop off only the unwanted moves?

Hi,
this little function is finally able to solve the maze. However it prints out all the moves (even the once that lead nowhere). I can't figure out where to pop of the moves in order to print out only the right moves that lead to the end of the maze.

Code:
```.

bool SolveMaze(char array[][40], position pos)

{

stack<position> s;

position curr_pos, next_pos;

bool checked[40][40];

for(int i = 0; i < LENGTH; i++)

for(int j = 0; j < WIDTH; j++) {

checked[i][j] = false;

}

s.push(pos);

while(!s.empty())
{

curr_pos = s.top();

s.pop();

if(array[curr_pos.x][curr_pos.y] == 'X')

return true;

// visit the current position

if(array[curr_pos.x][curr_pos.y] == '0' || array[curr_pos.x][curr_pos.y] == 'E')
{

if(array[curr_pos.x][curr_pos.y] == '0')

array[curr_pos.x][curr_pos.y] = '*';

else if(checked[curr_pos.x][curr_pos.y] == true)

return false;

if(checked[curr_pos.x][curr_pos.y] == false)
{

next_pos.x = curr_pos.x;

next_pos.y = curr_pos.y + 1;

s.push(next_pos);

next_pos.x = curr_pos.x;

next_pos.y = curr_pos.y - 1;

s.push(next_pos);

next_pos.x = curr_pos.x + 1;

next_pos.y = curr_pos.y;

s.push(next_pos);

next_pos.x = curr_pos.x - 1;

next_pos.y = curr_pos.y;

s.push(next_pos);

}
else
{

checked[curr_pos.x][curr_pos.y] = true;

}

}

}

return false;

}```
.

```if (checked[curr_pos.x][curr_pos.y] == false)