示例#1
0
        static void Main(string[] args)
        {
            Console.SetWindowSize(213, 52);
            Console.SetBufferSize(213, 52);
            Console.Title = "Kontrola Lotow";

            Radar radar         = new Radar();
            Baza  b             = new Baza(radar);
            Trasa losowySamolot = new Trasa(0, 0, 0, 0, 0);

            b.pokaInterfejs();
            int ms    = 0;
            int lot   = -1;
            int time  = 100;
            int gener = 0;

            for (; ;)
            {
                if (radar.run < 0)
                {
                    b.pokaInterfejs();
                }
                else
                {
                    radar.pokaRadar(ref lot);                           // aktualizuje i wyswietla radar
                    b.pokaListeLotow(radar, lot);                       // wypisuje liste lotow do podgledu/edycji
                    if (radar.skala > 1)
                    {
                        radar.naniesBudynki();                          // nanosi budynki na mape
                    }
                }
                radar.umieranie();
                if (gener == 1)
                {
                    radar.Losowanko();                                  // generuje samoloty na mapie przez losowanie
                }
                if (lot >= 0)
                {
                    b.pokaLot(radar, lot);                              // wyswietla informacje o locie
                }
                else
                {
                    b.pokaKonsole(radar.skala, gener);                  // czysci konsole
                }
                b.insert(200, 26, Convert.ToString(ms / 10 + " s"));    // wypisuje czas trwania programu
                b.insert(212, 51, Convert.ToString("."));               // wypisuje nic na koncu okna

                if (Console.KeyAvailable)                               // pobiera wybrany przycisk
                {
                    char wybor = Console.ReadKey().KeyChar;
                    if (lot >= 0)
                    {
                        switch (wybor)
                        {
                        case '0': b.czyscKonsole(); lot = -1; break;

                        case '1': if (radar.s[lot].trajektoria < 1)
                            {
                                radar.s[lot].trajektoria++;
                            }
                            else
                            {
                                radar.s[lot].trajektoria--;
                            } break;

                        case '2': radar.s[lot].zmienTrajektorie(radar.skala); break;
                        }                                        // zarzadzanie lotem
                    }
                    else if (wybor - 49 >= 0 && wybor - 49 < 10 && wybor - 49 <= radar.s.Count && radar.run > 0)
                    {
                        b.czyscKonsole();
                        lot = wybor - 49;
                        if (radar.s.Count < lot + 1)
                        {
                            lot = -1;
                        }
                    }   // wypisuje info o danym locie
                    else
                    {
                        switch (wybor)
                        {
                        case 'q': System.Diagnostics.Process.GetCurrentProcess().Kill(); break;         // zabija aplikacje

                        case 'e': b.pokaFax(); break;                                                   // info o wlascicielach

                        case 'w': losowySamolot = new Trasa(1, 2, 0, 0, 200); break;                    // pusc samolot

                        case 'r': radar.run *= -1; radar.pokaSkale(); break;                            // wlaczy/wylacz radar

                        case '.': if (time > 15)
                            {
                                time -= 15;
                            }
                            break;                                                                      // przyspiesz czas

                        case ',': time += 15; break;                                                    // spowolnij czas

                        case '/': time = 100; break;                                                    // ustaw domyslny czas

                        case 'm': radar.zmienMape(radar.run); break;                                    // zmienia mape

                        case 'g': if (gener == 0)
                            {
                                gener = 1;
                            }
                            else
                            {
                                gener = 0;
                            } break;                                                                    // generuje lot

                        case 'b': if (radar.skala > 1)
                            {
                                b.pokaListeBudynkow(radar);
                            }
                            break;                                                                      // generuje lot

                        case 's': b.zapis(radar); break;                                                // zapis do pliku

                        case 'k': radar.Kolizja(); break;                                               // kurs kolizyjny

                        case 'n': radar.NiebezpieczneZblizenia(); break;                                // niebezpieczne zblizenie

                        case 'x': radar.zderzonko(); break;

                        case 'c': radar.trajektorki(); break;
                        }
                    }
                }
                Thread.Sleep(time);
                ms++;
                if (losowySamolot.v != 0)
                {
                    b.pokaSamolot(ref losowySamolot);                       // ladujacy samolot
                }
            }
        }