//Vybere událost která je v simulaci první na řade podle atributu třídy událost --kdy private Udalost Prvni() { Udalost prvni = null; foreach (Udalost udalost in seznam) { if ((prvni == null) || (udalost.kdy < prvni.kdy)) { prvni = udalost; } } seznam.Remove(prvni); return(prvni); }
public override void Zpracuj(Udalost udalost) { switch (udalost.co) { case TypUdalosti.Prichod: if (fronta.Count == 0) { obsluhuje = false; } else { Cestujici cestujici = fronta[0]; fronta.RemoveAt(0); model.Odplanuj(cestujici, TypUdalosti.Cas); model.Naplanuj(model.CasSimulace + rychlostObsluhy, cestujici, TypUdalosti.Odbaven); model.Naplanuj(model.CasSimulace + rychlostObsluhy, this, TypUdalosti.Prichod); } break; } }
public override void Zpracuj(Udalost udalost) { switch (udalost.co) { case TypUdalosti.Prichod: if ((Zastavky.Count == 0) && stihlLetadlo) { dlouhyVypis.Add(VypisDlouhy("---------- Čeká na nalodění")); kratkyVypis.Add(Vypis("---------- Čeká na nalodění")); uspesni++; } else { Zastavky zastavky = ZastavkaKamChci(Zastavky[0]); if ((Zastavky.Count > 1) && stihlLetadlo) { model.Naplanuj(model.CasSimulace + casDoOdletu, this, TypUdalosti.Cas); } zastavky.ZaradDoFronty(this); } break; case TypUdalosti.Odbaven: dlouhyVypis.Add(VypisDlouhy("Vyřízeno: " + Zastavky[0])); Zastavky.RemoveAt(0); // bude se řešit další zastávka -> typ udalosti START model.Naplanuj(model.CasSimulace, this, TypUdalosti.Prichod); break; case TypUdalosti.Cas: { Zastavky zas = ZastavkaKamChci(Zastavky[0]); zas.VyradZFronty(this); } //Stihnu letadlo? if ((NastaveniCasu.casOdletu1.Hour < model.CasSimulace1.Hour) && (Zastavky.Count > 0)) { while (Zastavky.Count > 0) { Zastavky.RemoveAt(0); } this.stihlLetadlo = false; dlouhyVypis.Add(VypisDlouhy("----------- NESTIHL SVÉ LETADLO")); kratkyVypis.Add(Vypis("----------- NESTIHL SVÉ LETADLO")); break; } //Přehození pořadí zastávek, aby např. nalodění neproběhlo před bzp.kontrolou string nesplneny = Zastavky[0]; Zastavky.RemoveAt(0); Zastavky.Add(nesplneny); if ((Zastavky[0] == "Pasová kontrola")) { nesplneny = Zastavky[0]; Zastavky.RemoveAt(0); Zastavky.Add(nesplneny); } if ((Zastavky[0] == "Nalodění")) { nesplneny = Zastavky[0]; Zastavky.RemoveAt(0); Zastavky.Add(nesplneny); } model.Naplanuj(model.CasSimulace, this, TypUdalosti.Prichod); break; } }
public abstract void Zpracuj(Udalost udalost);