示例#1
0
        /*
         *  Creates the new track layout
         */
        private void buildRailRoad()
        {
            if (EXPLICIT)
            {
                Console.WriteLine("Initialising railway");
                if (WAIT)
                {
                    Console.ReadLine();
                }
            }
            railway = new iHasRails[2 * Stations.Length];
            for (int i = 0; i < Stations.Length; i++)
            {
                TimeDistr passdens;
                int       pass;
                if (Stations[i][Stations[i].Length - 1] == '0')
                {
                    passdens = PassDens_0;
                    pass     = PassDir0;
                }
                else
                {
                    passdens = PassDens_1;
                    pass     = PassDir1;
                }

                if (isEndstation[i])
                {
                    // This block: calculates the offset necesary in the timeschedule.
                    int drivetime = 0;
                    for (int j = 0; j < i; j++)
                    {
                        drivetime += Convert.ToInt32(DrivTimAvg[j]) + PerStationLeeway;
                    }
                    if (drivetime > 0)
                    {
                        drivetime += 4 * 60;
                    }

                    railway[2 * i] = new Endstation(Stations[i], hasDepot[i], NoTrams, PassInrates[i],
                                                    PassOutrates[i], passdens, pass, DrivTimAvg[i],
                                                    DrivTimVar[i], TramSchedule, drivetime, DataFolder, this
                                                    );
                }
                else
                {
                    railway[2 * i] = new Station(Stations[i], PassInrates[i], PassOutrates[i], passdens, pass,
                                                 DrivTimAvg[i], DrivTimVar[i], DataFolder, this);
                }

                railway[2 * i + 1] = new InTransit(NoTrams, this, Stations[i]);
            }

            for (int i = 0; i < railway.Length; i++)
            {
                railway[i].initStuff(railway[(railway.Length + i - 1) % railway.Length], railway[(railway.Length + i + 1) % railway.Length]
                                     );
            }
        }
        /*
            Creates the new track layout
        */  
        private void buildRailRoad() {
            if (EXPLICIT) {
                Console.WriteLine("Initialising railway");
                if (WAIT) Console.ReadLine();
            }
            railway = new iHasRails[2 *Stations.Length ];
            for (int i = 0; i < Stations.Length; i ++) {
                TimeDistr passdens;
                int pass;
                if (Stations[i][Stations[i].Length -1] == '0') {
                    passdens = PassDens_0;
                    pass = PassDir0;
                }
                else {
                    passdens = PassDens_1;
                    pass= PassDir1;
                }

                if (isEndstation[i]) {
                    // This block: calculates the offset necesary in the timeschedule. 
                    int drivetime = 0;
                    for (int j = 0; j < i; j++) {
                        drivetime += Convert.ToInt32(DrivTimAvg[j]) + PerStationLeeway;
                    }
                    if (drivetime > 0) drivetime += 4*60;

                    railway[2*i] = new Endstation( Stations[i], hasDepot[i], NoTrams, PassInrates[i], 
                                                   PassOutrates[i], passdens, pass, DrivTimAvg[i], 
                                                   DrivTimVar[i], TramSchedule, drivetime , DataFolder, this
                                                  );
                }
                else railway[2*i] = new Station(Stations[i], PassInrates[i], PassOutrates[i], passdens, pass,
                                                DrivTimAvg[i], DrivTimVar[i], DataFolder, this);
                
                railway[2*i + 1] = new InTransit(NoTrams, this, Stations[i]);
            }

            for (int i = 0; i < railway.Length; i++) {
                railway[i].initStuff( railway[(railway.Length + i - 1)%railway.Length], railway[(railway.Length + i + 1)%railway.Length]
                                                                          );
            }
        }