コード例 #1
0
        public static BusRoute initializeBus(BusRoute myBusRoute, BusCollection myBusCollection, List <BusStop> myUniqueStops)
        {
            Random r        = new Random();
            int    myRandom = 0;

            myBusRoute.m_Area = Areas[r.Next(Areas.Length)];
            do
            {
                myBusRoute.m_BusLine = r.Next(1000);
            } while (myBusCollection.busLineExist(myBusRoute));
            for (int adDStop = 0; adDStop < 10; adDStop++)
            {
                BusStop myNewStop   = new BusStop();
                int     Stop_random = r.Next(stopName.Length);
                myNewStop.m_mylocation.m_busStationKey = myStops[Stop_random].m_busStationKey;
                myNewStop.m_mylocation.m_latitude      = myStops[Stop_random].m_latitude;
                myNewStop.m_mylocation.m_location      = myStops[Stop_random].m_location;
                myNewStop.m_mylocation.m_longitude     = myStops[Stop_random].m_longitude;
                myNewStop.m_mylocation.m_location      = myStops[Stop_random].m_location;
                if (adDStop == 0)
                {
                    myBusRoute.m_FirstStation = stopName[Stop_random];
                }
                else if (adDStop == 9)
                {
                    myBusRoute.m_LastStation = stopName[Stop_random];
                }
                if (!myBusRoute.stopExist(myNewStop))
                {
                    notUseDStops[Stop_random]++;
                }
                if (!myBusCollection.keyExist(myStops[myRandom].m_busStationKey))
                {
                    myBusCollection.m_BusKeysList.Add(myStops[adDStop].m_busStationKey);
                    myUniqueStops.Add(myNewStop);
                }
                myRandom = r.Next(myStops.Length);
                //myBusRoute.m_Stations.Add(myStops[myRandom]);
                myBusRoute.add(myNewStop, myBusRoute.m_Stations.Count());
            }

            return(myBusRoute);
        }
コード例 #2
0
        /// <summary>
        /// initialize a busCollection with 10 bus routs which contain at least 40 stops
        /// </summary>
        public static void initializeBusRoute(ref BusCollection myBusCollection, ref List <BusStop> myUniqueStops)
        {
            //BusCollection myBusCollection = new BusCollection();
            Random   r          = new Random();
            BusRoute myBusRoute = new BusRoute();

            BusRoute[] myRoutes = new BusRoute[Areas.Length];
            int        myRandom;

            ///////////////////////////////////////////
            ///     INITAILIZEING 40 STOPS
            //////////////////////////////////////////
            for (int i = 0; i < stopName.Length; i++)
            {
                myStops[i]             = new stopLocation();
                myStops[i].m_location  = stopName[i];
                myStops[i].m_longitude = r.Next(34, 36) + (float)(r.NextDouble() % 0.2 + 0.3);
                if (myStops[i].m_longitude < 35)
                {
                    myStops[i].m_longitude += (float)r.NextDouble();
                }
                myStops[i].m_latitude = r.Next(31, 34) + (float)(r.NextDouble() % 0.3);
                if (myStops[i].m_longitude < 33)
                {
                    myStops[i].m_longitude += (float)r.NextDouble();
                }
                do
                {
                    myStops[i].m_busStationKey = r.Next(10000000);
                } while (myBusCollection.keyExist(myStops[i].m_busStationKey));
            }
            ///////////////////////////////////////////
            ///     INITAILIZEING 10 BUS ROUTES
            //////////////////////////////////////////
            for (int i = 0; i < 10; i++)
            {
                myBusRoute = new BusRoute();

                myBusRoute = initializeBus(myBusRoute, myBusCollection, myUniqueStops);

                myBusCollection.addFirstBusRoute(myBusRoute);
            }
            ///////////////////////////////////////////
            ///     ALL STOP ARE USED CHECK
            //////////////////////////////////////////
            bool   addedNewBus = false;
            bool   foundFirst  = false;
            string last        = "";

            myBusRoute = new BusRoute();
            for (int i = 0; i < stopName.Length; i++)
            {
                if (notUseDStops[i] == 0)
                {
                    BusStop myNewStop = new BusStop();
                    myNewStop.m_mylocation.m_busStationKey = myStops[i].m_busStationKey;
                    myNewStop.m_mylocation.m_latitude      = myStops[i].m_latitude;
                    myNewStop.m_mylocation.m_location      = myStops[i].m_location;
                    myNewStop.m_mylocation.m_longitude     = myStops[i].m_longitude;
                    myNewStop.m_mylocation.m_location      = myStops[i].m_location;
                    addedNewBus = true;
                    notUseDStops[i]++;
                    myBusRoute.add(myNewStop, myBusRoute.m_Stations.Count());
                    last = myStops[i].m_location;
                    if (!foundFirst)
                    {
                        myBusRoute.m_FirstStation = last;
                        foundFirst = true;
                    }
                    if (!myBusCollection.keyExist(myStops[i].m_busStationKey))
                    {
                        myBusCollection.m_BusKeysList.Add(myStops[i].m_busStationKey);
                        myUniqueStops.Add(myNewStop);
                    }
                }
            }
            if (foundFirst)
            {
                myBusRoute.m_LastStation = last;
                myBusRoute.m_Area        = Areas[r.Next(Areas.Length)];
                do
                {
                    myBusRoute.m_BusLine = r.Next(1000);
                } while (myBusCollection.busLineExist(myBusRoute));
            }
            myBusCollection.addFirstBusRoute(myBusRoute);
            /////////////////////////////////////////////////
            //   10 STOPS ARE USED IN MORE THAN 1 BUS  LINE
            //////////////////////////////////////////////////

            BusRoute myNewRoute = new BusRoute();

            for (int i = 0; i < 10; i++)
            {
                if (notUseDStops[i] < 2)
                {
                    BusStop myNewStop = new BusStop();
                    myNewStop.m_mylocation.m_busStationKey = myStops[i].m_busStationKey;
                    myNewStop.m_mylocation.m_latitude      = myStops[i].m_latitude;
                    myNewStop.m_mylocation.m_location      = myStops[i].m_location;
                    myNewStop.m_mylocation.m_longitude     = myStops[i].m_longitude; notUseDStops[i]++;
                    myNewRoute.add(myNewStop, myNewRoute.m_Stations.Count());
                    if (!myBusCollection.keyExist(myStops[i].m_busStationKey))
                    {
                        myBusCollection.m_BusKeysList.Add(myStops[i].m_busStationKey);
                        myUniqueStops.Add(myNewStop);
                    }
                }
            }
        }