示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
        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);
                }
            }
        }