private void PathFinding(int StopSteps) { int count = 0; var visited = MainProgramInstance.Visited; var frontier = new Queue <int>(); MainProgramInstance.Visited.Clear(); frontier.Enqueue(MainProgramInstance.Input); while ((!visited.Contains(MainProgramInstance.Target)) && (count < StopSteps)) { Console.WriteLine(frontier.Count); var nextFrontier = MainProgramVM.BFSPathFinder(frontier, hexList, mapDict, MainProgramInstance.Target); frontier = nextFrontier; if (visited.Contains(MainProgramInstance.Target)) { Tbx.Text = $"We found the minimum Steps of {count}"; Btn_Next.IsEnabled = false; } else { Tbx.Text = $"Start: {MainProgramInstance.Input} End: {MainProgramInstance.Target} It is the {count} Step(s)"; } count++; } }
public MainWindow() { InitializeComponent(); MainProgramInstance = MainProgramVM.MainProgramInstance; DataContext = MainProgramInstance; var ret = MainProgramInstance.PrepHexMap(); hexList = ret.Item1; mapDict = ret.Item2; foreach (var item in hexList.GetRange(0, 271))// display 271 hex on canvas { var secHex = new HexagonDraw(item); var tmpPolygen = secHex.GetHexPolygon(Brushes.Gold); ParentCavas.Children.Add(tmpPolygen); tmpPolygen.MouseDown += TmpPolygen_MouseDown; ParentCavas.Children.Add(secHex.GetLabel()); } var border = new Border { BorderThickness = new Thickness(1), BorderBrush = Brushes.Black }; this.WindowState = WindowState.Maximized; Show(); }