public void CreatePathUsingBFS(MazeButton mazeButton) { var queue = new Queue <MazeButton>(); mazeButton.IsVisited = true; queue.Enqueue(mazeButton); while (queue.Count != 0) { var e = queue.Dequeue(); int buttonIndex = ButtonsList.IndexOf(e); foreach (var btn in GetAdjacent(buttonIndex)) { if (btn == MazeEndPoint) { MazeEndPoint.Previous = e; return; } if (!btn.IsVisited && !btn.IsBlock) { btn.Previous = e; btn.IsVisited = true; queue.Enqueue(btn); } } } }
public void CreatePathUsingDFS(MazeButton mazeButton) { mazeButton.IsVisited = true; int buttonIndex = ButtonsList.IndexOf(mazeButton); foreach (var btn in GetAdjacent(buttonIndex)) { if (!btn.IsVisited && !btn.IsBlock) { btn.Previous = mazeButton; CreatePathUsingDFS(btn); } } }