//int dir = 4; //bool direction[Max_Maze][Max_Maze][dir]; bool visited[Max_Maze][Max_Maze]; for (row = 0; row < size; ++ row) { for (col = 0; col < size; ++ col) { visited[row][col] = false; /* for (dir = 0; dir < 4; ++ dir) { direction[row][col][dir]=false; } */ } } bool notSolved = true; int path = 0; row = 0; col = 0; rowStack.push(row); colStack.push(col); while (notSolved){ //from perspective of person looking at maze on screen if (((row-1)>=0)&&(maze[row - 1][col] == 0)/*&&(direction[row][col][0]==false)*/&&(visited[row-1][col]==false)){//if that space is not out of bounds and if you can go up //direction[row][col][0] = true; //and you have not gone in that direction yet, go up row--; visited[row][col] = true; rowStack.push(row); colStack.push(col); path++; } else if (((col+1)=0)&&(maze[row][col - 1] == 0)/*&&(direction[row][col][3]==false)*/&&(visited[row][col-1]==false)){//else if you can go left etc., go left //direction[row][col][3] = true; col--; visited[row][col] = true; rowStack.push(row); colStack.push(col); path++; } else{//if stuck if (path == 0){ cout << "No Solution Path" << endl; notSolved = false; } else{ rowStack.pop(); colStack.pop(); row = rowStack.top(); col = colStack.top(); path--; } } if((maze[row][col] == 0) && (row == (size - 1) && col == (size - 1))){//if we reached an exit cout << "Solution Path:(in reverse)" << endl; for (int i = 0; i <= path; i++){ cout << "row:" << rowStack.top() << " col:" << colStack.top() << endl; rowStack.pop(); colStack.pop(); } notSolved = false; }