samedi 14 mars 2015

Stack for backtracking maze


For the algorithm DFS for maze-generation:


1) Is the stack value supposed to change once I push the stack in whenever there is a path to go?


For example as below 5x5 Maze:



0, 0, 0, 0, 0

0, 1, 0, 0, S

0, 1, 1, 1, 1

0, D, 0, 0, 0

0, 0, 0, 0, 0


Let's say from source I move down one step (CurrentCell)


The stack will push in coordinates (5,2) (Current Source Location)


Then when I reaches (5,3), the currentCell will become the Source. (5,3)


Am i correct?


So when the source moves to the next left path, the stack will push in the current coordinate, which is (5,3) so on and so for until it reaches a dead end instead of the destination.


So as per above example:


The stack will first push in value of


Stack(0) (5,2) Stack(1) (5,3)


. . . .


The question is, how am i supposed to push in the x and y? Because the current problem is, even if I push in the x and y, the x and y stays at the original value instead of constantly updating. That's the reason why my backtrack is not working, I guess.


Code:



(random == 3) //To check for bottom neighbor
{
if (randomY + 2 < column) //In case the column overshots
{

{
mazeArray[randomX][randomY + 1].setValue(1); //New Path Set as 1
myStack.push(mazeArray[randomX][randomY]);
randomY = randomY + 1;
}
}
}



Aucun commentaire:

Enregistrer un commentaire