Ejemplo n.º 1
0
        //--------------------------------------------------------------------------------------------------------------------------------
        private void LaunchRouteSearch(object data)
        {
            Debug.WriteLine("launched search thread");
            long startTicks = DateTime.Now.Ticks;

            IList <Route> routes = (IList <Route>)data;

            totalDistance = 0;
            maxCargo      = 0;
            maxPassenger  = 0;
            sb            = new StringBuilder();

            using (aStarSearch = new AStarRoute())
            {
                aStarSearch.CostScale = (int)numericUpDownScale.Value;

                IList <FlightPlanLeg> legs = aStarSearch.CalculateRoute(routes, AirportData.Airports);

                for (int i = 1; i < legs.Count; ++i)
                {
                    FlightPlanLeg prev     = legs[i - 1];
                    FlightPlanLeg curr     = legs[i];
                    int           distance = prev.airportData.DistanceTo(curr.airportData);
                    totalDistance += distance;

                    maxCargo     = Math.Max(maxCargo, prev.cargo);
                    maxPassenger = Math.Max(maxPassenger, prev.passenger);

                    sb.AppendFormat("{0} -> {1} {2,5}nm {3,6}lb {4,4}p", prev.airportData.ICAO, curr.airportData.ICAO, distance, prev.cargo, prev.passenger);
                    sb.AppendLine();
                }
            }

            var duration = TimeSpan.FromTicks(DateTime.Now.Ticks - startTicks).TotalSeconds;

            Debug.WriteLine(string.Format("search done: {0}s", duration));

            Invoke(new OnFinished(OnSearchDone));
        }
Ejemplo n.º 2
0
        public void TestMethod1()
        {
            IList <Route> routes = testRouteShort;

            AStarRoute            search = new AStarRoute();
            IList <FlightPlanLeg> legs   = search.CalculateRoute(routes, AirportData.Airports);

            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            int totalDistance = 0;

            for (int i = 1; i < legs.Count; ++i)
            {
                FlightPlanLeg prev     = legs[i - 1];
                FlightPlanLeg curr     = legs[i];
                int           distance = prev.airportData.DistanceTo(curr.airportData);
                sb.AppendFormat("{0} -> {1} {2,5}nm {3,6}lb {4,4}p", prev.airportData.ICAO, curr.airportData.ICAO, distance, prev.cargo, prev.passenger);
                sb.AppendLine();
                totalDistance += distance;
            }

            Debug.WriteLine(sb.ToString());
            Debug.WriteLine("Total: " + totalDistance);
        }