public SimulationAirCraft(int _AirCraftId, string _NameModel, string _NameAirLine, int _PassangerCapacity, MainWindow mainWindow) { this.mainWindow = mainWindow; this.AirCraftId = _AirCraftId; this.NameModel = _NameModel; this.NameAirLine = _NameAirLine; this.PassengerCapacity = _PassangerCapacity; Trace.WriteLine("Samolot " + AirCraftId.ToString() + " " + NameModel + " ISTNIEJE!!"); }
public void TerminalZapakowac() { //Wybranie kierunku do wylotu //Losuj kierunek do jakiego wyleci samolot int kier = random.Next(1, 9); switch (kier) { case (int)NazwyLotnisk.Berlin: Kierunek = "Berlin"; break; case (int)NazwyLotnisk.Krakow: Kierunek = "Kraków"; break; case (int)NazwyLotnisk.Leeds: Kierunek = "Leeds"; break; case (int)NazwyLotnisk.Londyn: Kierunek = "Londyn"; break; case (int)NazwyLotnisk.Manchester: Kierunek = "Manchester"; break; case (int)NazwyLotnisk.Praga: Kierunek = "Praga"; break; case (int)NazwyLotnisk.Warszawa: Kierunek = "Warszawa"; break; case (int)NazwyLotnisk.Wieden: Kierunek = "Wieden"; break; default: Kierunek = "W siną dal xD"; break; } //Aktualizuj tablice odlotow AktualizacjaTablicyOdlotow(); //Aktualizuj terminal o dodatkowy samolot AktualizujTerminalWejscie(); //Posiedz trochę w terminalu int czasWterminalu = random.Next(10, 11); // przedział między 30s a 2 minutami Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " ODLOT DO " + Kierunek + " NA TERMINALU: " + czasWterminalu.ToString() + "s"); Thread.Sleep(czasWterminalu * 1000); //czas spania w terminalu w milisekundach //Aktualizuj terminal o wyjsciu z niego AktualizujTerminalWyjscie(); Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " ODLOT DO " + Kierunek + " WYJSCIE Z TERMINALA"); }
public void Wylot() { //Aktualizacja tablicy odlotów o odlocie AktualizacjaTablicyOdlotow(true); //Niech sobie tak leci przez pewien czas int czaswPowietrzu = random.Next(10, 11); // przedział między 30s a 2 minutami Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " ODLOT DO " + Kierunek + " ODLECIAŁ CZAS W POWIETRZU: " + czaswPowietrzu.ToString() + "s"); Thread.Sleep(czaswPowietrzu * 1000); //czas spania w terminalu w milisekundach //teraz zaczyna się nowy cykl Trace.WriteLine("QQQSSS " + AirCraftId.ToString() + " " + NameModel + " NOWY CYKL"); }
public void TerminalRozpakowac() { //Aktualizuj terminal o dodatkowy samolot AktualizujTerminalWejscie(); //Posiedz trochę w terminalu int czasWterminalu = random.Next(10, 11); // przedział między 30s a 2 minutami Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " PRZYLOT Z " + Kierunek + " W TERMINALU: " + czasWterminalu.ToString() + "s"); Thread.Sleep(czasWterminalu * 1000); //czas spania w terminalu w milisekundach //Aktualizuj terminal o wyjsciu z niego AktualizujTerminalWyjscie(); Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " PRZYLOT Z " + Kierunek + " WYJSCIE Z TERMINALA"); }
public void Postoj() { //Udaj się na spoczynek //AktualizujParkingWejscie AktualizujParkingWejscie(); //Posiedz trochę w parkingu int czaswParkingu = random.Next(10, 11); // przedział między 30s a 2 minutami Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " PRZYLOT Z " + Kierunek + " NA PARKINGU: " + czaswParkingu.ToString() + "s"); Thread.Sleep(czaswParkingu * 1000); //czas spania w terminalu w milisekundach //Wyjsciez parkingu AktualizujParkingWyjscie(); Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " WYJSCIE Z PARKINGU"); }
public void Play() { //Przeprowadz test Trace.WriteLine("Samolot " + AirCraftId.ToString() + " " + NameModel + " w grze z własnym wątkiem"); //losuj od czego ma się zacząć działanie w symulacji int start = random.Next(1, 4); //losuję jedną z trzech możliwości int dzialanie = 0; //aktualne dzialanie Obiektu - Samolotu if (start == 1) { dzialanie = (int)KrokiPostepowania.Postoj; } else if (start == 2) { dzialanie = (int)KrokiPostepowania.TerminalZapakowac; } else { dzialanie = (int)KrokiPostepowania.Przylot; } //Uzupełnienie danych do podjęcia pierwszego dzialania if (dzialanie == (int)KrokiPostepowania.Postoj) { Rejs = AirCraftId.ToString() + NameAirLine; } else if (dzialanie == (int)KrokiPostepowania.TerminalZapakowac) { Rejs = AirCraftId.ToString() + NameAirLine; } else //Przylot { Rejs = AirCraftId.ToString() + NameAirLine; } //Pętla życia dla Samolotu int licznikPętli = 0; bool dzialaj = true; while (dzialaj) { if (dzialanie == (int)KrokiPostepowania.Przylot) { Rejs = AirCraftId.ToString() + NameAirLine + random.Next(0, 1000).ToString(); Przylot(); } else if (dzialanie == (int)KrokiPostepowania.TerminalRozpakowac) { TerminalRozpakowac(); } else if (dzialanie == (int)KrokiPostepowania.Postoj) { Postoj(); } else if (dzialanie == (int)KrokiPostepowania.TerminalZapakowac) { Rejs = AirCraftId.ToString() + NameAirLine + random.Next(0, 1000).ToString(); TerminalZapakowac(); } else { Wylot(); licznikPętli++; } dzialanie++; if (dzialanie == 5) { dzialanie = 0; } //ustawia wartość początkową dla pętli if (licznikPętli == 3) { dzialaj = false; } //kończy dzialanie dla pętli } }
public void Przylot() { //Losuj kierunek z jakiego przyleci samolot int kier = random.Next(1, 9); switch (kier) { case (int)NazwyLotnisk.Berlin: Kierunek = "Berlin"; break; case (int)NazwyLotnisk.Krakow: Kierunek = "Kraków"; break; case (int)NazwyLotnisk.Leeds: Kierunek = "Leeds"; break; case (int)NazwyLotnisk.Londyn: Kierunek = "Londyn"; break; case (int)NazwyLotnisk.Manchester: Kierunek = "Manchester"; break; case (int)NazwyLotnisk.Praga: Kierunek = "Praga"; break; case (int)NazwyLotnisk.Warszawa: Kierunek = "Warszawa"; break; case (int)NazwyLotnisk.Wieden: Kierunek = "Wieden"; break; default: Kierunek = "W siną dal xD"; break; } /// /// Teraz niech sobie tak leci przez jakiś czas który zostanie wylosowany /// int czekaj = random.Next(10, 11); // losuję z przedziału od 10s do 60s //Aktualizacja tablicy przylotów i dodanie lotu AktualizacjaTablicyPrzylotow(); Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " PRZYLOT Z " + Kierunek + " za: " + czekaj.ToString() + "s"); Thread.Sleep(czekaj * 1000); //czas podawany w milisekundach //Losuj czy zajdzie opóźnienie int opoznienie = random.Next(0, 2); //losuje z przedzialu <0,1> //TYMCZASOWO WYCIETE OPOZNIENIE DLA PRZYLOTOW //if (opoznienie == (int)WarunkiTakNie.Tak) //{ // int opczas = random.Next(10, 11); //przedzial od <10s 30s> // //Aktualizuje tablicę przylotów o podane opóźnienie // AktualizacjaTablicyPrzylotow(opczas); // Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " PRZYLOT Z " + Kierunek + " opóźnienie: " + opczas.ToString() + "s"); // Thread.Sleep(opczas * 1000); //czas podany w milisekundach //} //Lądowanie Trace.WriteLine("SSS " + AirCraftId.ToString() + " " + NameModel + " PRZYLOT Z " + Kierunek + " LĄDOWANIE"); AktualizacjaTablicyPrzylotow(true); // Aktualizacja o wylądowaniu }