public void MusteriCikart() { while (true) { int katSayisi = 1 + random.Next(4); if (katlar[katSayisi].gelenKisiler.Count != 0) { int kisiSayisi = 1 + random.Next(5); while (true) { if (kisiSayisi == 0 || katlar[katSayisi].gelenKisiler.Count == 0) { break; } else { if (katlar[katSayisi].gelenKisiler.Peek().kisiSayisi - kisiSayisi <= 0) { // kat tablo kontrolü katlar[katSayisi].kisiSayisi -= katlar[katSayisi].gelenKisiler.Peek().kisiSayisi; katlar[katSayisi].kuyrukSayisi++; kisiSayisi -= katlar[katSayisi].gelenKisiler.Peek().kisiSayisi; katlar[katSayisi].gelenKisiler.Peek().katSayisi = 0; katlar[katSayisi].cikanKisiler.Enqueue(katlar[katSayisi].gelenKisiler.Dequeue()); // kat tablo kontrolü katlar[katSayisi].KuyrukSayisiYazdır(); katlar[katSayisi].KuyrukYazdir(katSayisi); } else if (katlar[katSayisi].gelenKisiler.Peek().kisiSayisi - kisiSayisi > 0) { Grup grup = new Grup() { katSayisi = 0, kisiSayisi = kisiSayisi, }; katlar[katSayisi].gelenKisiler.Peek().kisiSayisi -= kisiSayisi; katlar[katSayisi].cikanKisiler.Enqueue(grup); // kat tablo kontrolü katlar[katSayisi].kisiSayisi -= kisiSayisi; katlar[katSayisi].kuyrukSayisi++; katlar[katSayisi].KuyrukSayisiYazdır(); katlar[katSayisi].KuyrukYazdir(katSayisi); kisiSayisi = 0; } } } } Thread.Sleep(Utilites.cikisThreadCalismaSuresi); } }
private void MusteriEkle() { while (true) { int kisiSayisi = 1 + random.Next(10); int katSayisi = 1 + random.Next(4); Grup grup = new Grup() { kisiSayisi = kisiSayisi, katSayisi = katSayisi, }; katlar[0].kuyrukSayisi++; katlar[0].gelenKisiler.Enqueue(grup); // kat tablo kontrolü katlar[0].KuyrukSayisiYazdır(); katlar[0].KuyrukYazdir(0); Thread.Sleep(Utilites.girisThreadCalismaSuresi); } }
public void MusteriAl() { if (musteriKomutları == AsansorMusteriKomutları.YolcuGotur) { while (true) { if (kisiSayisi < Utilites.asansorKapasite && kisiSayisi >= 0) { if (kat == 0 && katlar[kat].gelenKisiler.Count > 0) { if (kisiSayisi + katlar[kat].gelenKisiler.Peek().kisiSayisi <= Utilites.asansorKapasite) { kisiSayisi += katlar[kat].gelenKisiler.Peek().kisiSayisi; asansordekiKisiler.Add(katlar[kat].gelenKisiler.Dequeue()); // kat tablo kontrolü katlar[kat].kuyrukSayisi--; } else if (kisiSayisi + katlar[kat].gelenKisiler.Peek().kisiSayisi > Utilites.asansorKapasite) { int asansorDolumFark = Utilites.asansorKapasite - kisiSayisi; Grup grup = new Grup() { katSayisi = katlar[kat].gelenKisiler.Peek().katSayisi, kisiSayisi = asansorDolumFark, }; kisiSayisi += asansorDolumFark; katlar[kat].gelenKisiler.Peek().kisiSayisi -= asansorDolumFark; asansordekiKisiler.Add(grup); } } else if (kat == 0 && katlar[kat].gelenKisiler.Count == 0) { break; } } else { break; } } } else if (musteriKomutları == AsansorMusteriKomutları.YolcuTopla) { while (true) { if (kisiSayisi < Utilites.asansorKapasite && kisiSayisi >= 0) { if (kat != 0 && katlar[kat].cikanKisiler.Count > 0) { if (kisiSayisi + katlar[kat].cikanKisiler.Peek().kisiSayisi <= Utilites.asansorKapasite) { // kat tablo kontrolü katlar[kat].kuyrukSayisi--; katlar[kat].KuyrukYazdir(kat); katlar[kat].KisiSayisiYazdır(kat); katlar[kat].KuyrukSayisiYazdır(); kisiSayisi += katlar[kat].cikanKisiler.Peek().kisiSayisi; asansordekiKisiler.Add(katlar[kat].cikanKisiler.Dequeue()); } else if (kisiSayisi + katlar[kat].cikanKisiler.Peek().kisiSayisi > Utilites.asansorKapasite) { int asansorDolumFark = Utilites.asansorKapasite - kisiSayisi; Grup grup = new Grup() { katSayisi = katlar[kat].cikanKisiler.Peek().katSayisi, kisiSayisi = asansorDolumFark, }; // kat tablo kontrolü katlar[kat].KuyrukYazdir(kat); katlar[kat].KuyrukSayisiYazdır(); katlar[kat].KisiSayisiYazdır(kat); kisiSayisi += asansorDolumFark; katlar[kat].cikanKisiler.Peek().kisiSayisi -= asansorDolumFark; asansordekiKisiler.Add(grup); } } else if (kat != 0 && katlar[kat].cikanKisiler.Count == 0) { break; } } else { break; } } } }