Exemple #1
0
        public void pridejHlavnihoPasazera(Stanice zacatek, Stanice konec, float start)
        {
            Pasazer hlavni = new Pasazer(this, "0", zacatek, konec, start);

            seznamPasazeru.Add(pocetVygenerovanychPasazeru, hlavni);
            pocetVygenerovanychPasazeru++;
            Udalost prichodPrvnihoPasazera = new Udalost(start, hlavni, TypUdalosti.prichodDoStanice);

            kalendar.pridejUdalost(prichodPrvnihoPasazera);
        }
Exemple #2
0
        private void nastupovani()
        {
            Pasazer p = null;

            while ((seznamPasazeru.Count < kapacita) && (p = aktualniStanice.vratPasazeraVeSmeru(smerVice)) != null)
            {
                //Console.WriteLine("pasazer " + p.id + " nastupuje v " + model.getCas() + " ve stanici " + aktualniStanice.id + " do " + id);
                seznamPasazeru.Add(p);
            }
        }
Exemple #3
0
        private Pasazer vygenerujPasazera(int casPrichodu)
        {
            int pocatecniStanice = rand.Next(0, seznamStanic.stanice.Count);
            int konecnaStanice   = rand.Next(0, seznamStanic.stanice.Count);

            while (konecnaStanice == pocatecniStanice)
            {
                konecnaStanice = rand.Next(0, seznamStanic.stanice.Count); //aby se generovali pasazeri, kteri nikam nejedou v podstate
            }
            Pasazer p = new Pasazer(this, pocetVygenerovanychPasazeru + "", seznamStanic.stanice.Values[pocatecniStanice], seznamStanic.stanice.Values[konecnaStanice], casPrichodu);

            return(p);
        }
Exemple #4
0
        private void spawniOstatniPasazery() //kazdejch SPAWN_LIDI_MEZICAS spawni lidi
        {
            int pocetLidiKVygenerovani = SPAWN_LIDI_MEZICAS * nastaveni.frekvenceLidi;

            for (int i = 0; i < pocetLidiKVygenerovani; i++)
            {
                int     casPrichodu = rand.Next((int)cas, (int)cas + SPAWN_LIDI_MEZICAS);
                Pasazer p           = vygenerujPasazera(casPrichodu);
                pocetVygenerovanychPasazeru++;
                seznamPasazeru.Add(pocetVygenerovanychPasazeru, p);
                Udalost prichodPasazera = new Udalost(p.start, p, TypUdalosti.prichodDoStanice);
                kalendar.pridejUdalost(prichodPasazera);
            }
        }
Exemple #5
0
        private void vystupovani()
        {
            Pasazer p = null;

            for (int i = 0; i < seznamPasazeru.Count; i++)
            {
                p = seznamPasazeru[i];
                if (p.getPristiStanice() == aktualniStanice)
                {
                    //Console.WriteLine("pasazer " + p.id + " vystupuje v " + model.getCas() + " ve stanici " + aktualniStanice.id + " z " + id);
                    model.pridejDoKalendare(new Udalost(model.getCas(), p, TypUdalosti.prichodDoStanice));
                    seznamPasazeru.Remove(p);
                }
                else
                {
                    //Console.WriteLine("pasazer nevystupuje protoze akt stanice je " + aktualniStanice.id + " ale chce do " + p.getPristiStanice().id);
                }
            }
        }
Exemple #6
0
        public Pasazer vratPasazeraVeSmeru(bool smerVice)
        {
            Pasazer p = null;

            if (smerVice)
            {
                if (nastupisteVice.Count > 0)
                {
                    p = nastupisteVice.Dequeue();
                }
            }
            else
            {
                if (nastupisteMene.Count > 0)
                {
                    p = nastupisteMene.Dequeue();
                }
            }
            return(p);
        }
Exemple #7
0
 public void zaradNaNastupiste(Pasazer p, Stanice pristi)
 {
     if (pismeno.Equals(pristi.pismeno))
     {
         if (pristi.kilometr > kilometr)
         {
             nastupisteVice.Enqueue(p);
             //Console.WriteLine("pasazer " + p.id + " zařazen do fronty VICE (" + id + "), jede do stanice " + pristi.id);
         }
         else
         {
             nastupisteMene.Enqueue(p);
             //Console.WriteLine("pasazer " + p.id + " zařazen do fronty MENE (" + id + "), jede do stanice " + pristi.id);
         }
     }
     else
     {
         Console.WriteLine("CHYBAAA");
         System.Environment.Exit(1);
     }
 }
Exemple #8
0
 public void removePasazer(Pasazer p)
 {
     seznamPasazeru.Remove(Int32.Parse(p.id));
     //Console.WriteLine("removing " + p.id);
 }