public Symulacja(string sciezkaPlikuKonfiguracji)
        {
            zarzadyTransportu = new List <SynchronicznyZarzadTransportu>();

            using (var sr = File.OpenText(sciezkaPlikuKonfiguracji))
            {
                var dane = sr.ReadLine().Split('|');
                sciezkaPlikuTla           = dane[0];
                tlo                       = Image.FromFile(sciezkaPlikuTla);
                szerokoscMapy             = Convert.ToInt32(dane[2]);
                wysokoscMapy              = Convert.ToInt32(dane[3]);
                czyGenerowacLinieOdwrotne = (dane[4] == "1") ? true : false;

                if (dane.Length == 6)
                {
                    sciezkaPlikuPrzyplywow = dane[5];
                }
                else
                {
                    sciezkaPlikuPrzyplywow = null;
                }

                do
                {
                    var zt = SynchronicznyZarzadTransportu.OdczytajPlik(sr.ReadLine());
                    zarzadyTransportu.Add(zt);

                    if (czyGenerowacLinieOdwrotne)
                    {
                        zt.DodajLiniePowrotne();
                    }
                } while (!sr.EndOfStream);

                using (var srPrzejazdy = File.OpenText(dane[1]))
                {
                    do
                    {
                        var danePrzejazdu = srPrzejazdy.ReadLine().Split('|');
                        var zt            = ZwrocZarzadPosiadajacyFirmeDanejKonfiguracji(danePrzejazdu[1]);
                        zt.DodajPrzejazdDoListy(danePrzejazdu[0], danePrzejazdu[1], danePrzejazdu[2], danePrzejazdu[3]);
                        zt.StworzRozkladJazdyNaPrzystankach();
                    } while (!srPrzejazdy.EndOfStream);
                }
            }

            GeneratorPasazerow.Instancja(zarzadyTransportu[0].SiecPrzystankow, zarzadyTransportu[0].ListaLinii);

            var generator = GeneratorPrzyplywowPasazerow.Instancja();

            if (DaneWczytane)
            {
                generator.OdczytajPlik(sciezkaPlikuPrzyplywow, zarzadyTransportu[0]);
                zarzadyTransportu[0].DodajPrzyplywy(generator.Przyplywy);
            }

            WizualizatorMapy.Instancja(sciezkaPlikuTla, szerokoscMapy, wysokoscMapy);
        }
        public static GeneratorPasazerow Instancja(IEnumerable <Przystanek> siecPrzystankow, IEnumerable <Linia> linie)
        {
            if (instancja == null)
            {
                instancja = new GeneratorPasazerow(siecPrzystankow, linie);
            }

            return(instancja);
        }
示例#3
0
        public void WygenerujLosowePrzyplywyDlaPrzystanku(Przystanek przystanek, int iloscPrzyplywow, int iloscPasazerow)
        {
            for (int i = 0; i < iloscPrzyplywow; i++)
            {
                var przyplyw = new PrzyplywPasazerow(WygenerujLosowyCzas(), przystanek);

                for (int j = 0; j < iloscPasazerow; j++)
                {
                    przyplyw.DodajPasazera(GeneratorPasazerow.Instancja().WygenerujLosowegoPasazera(przyplyw.czasPrzyplywu));
                }

                przyplywyPasazerow.Add(przyplyw);
            }
        }