/// <summary> /// Функция менеджмента диспетчеров /// </summary> /// <param name="plane">принимает ссылку на список диспетчеров</param> static void ManageDispatchers(ref Plane plane) { Console.WriteLine("1 удаление диспетчера\n2 добавление диспетчера\n3 выход"); ConsoleKeyInfo keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.D1: { int i = 0; int number; string s = null; Console.WriteLine("Выбирете id диспетчера"); foreach (Dispathcer d in plane.Dispathcers) { Console.WriteLine("{0} {1}", i++, d.Name); } s = Console.ReadLine(); if (Int32.TryParse(s, out number)) { try { plane.GetPenaltyPointsFromDeletedDispatcher(plane.Dispathcers[number]); plane.Dispathcers.RemoveAt(number); } catch (IndexOutOfRangeException ex) { Console.WriteLine(ex.Message); } } } break; case ConsoleKey.D2: { List<Dispathcer> list = SetDispatchers(); plane.AddDispatcher(list); } break; case ConsoleKey.D3: return; default: break; } }
static void Main(string[] args) { List<Dispathcer> disps = SetDispatchers(); Plane plane = new Plane("3218", disps); Console.WriteLine("Управление стрелками курсора. D - открывает меню диспетчеров"); Console.WriteLine("Ок. Взлетайте"); Console.WriteLine(plane); while (true) { if (!plane.MayFly) { Console.WriteLine("Недостаточно диспетчеров"); plane.AddDispatcher(SetDispatchers()); } ConsoleKeyInfo keyInfo = Console.ReadKey(); if (keyInfo != null) { try { switch (keyInfo.Key) { case ConsoleKey.RightArrow: { if (keyInfo.Modifiers.ToString() == "Shift") plane.UpSpeedStrong(); else plane.UpSpeed(); Console.WriteLine("скорость+"); Console.WriteLine(plane); ShowDispathcerInfo(plane.Dispathcers); } break; case ConsoleKey.LeftArrow: { if (keyInfo.Modifiers.ToString() == "Shift") plane.DownSpeedStrong(); else plane.DownSpeed(); Console.WriteLine("скорость-"); Console.WriteLine(plane); ShowDispathcerInfo(plane.Dispathcers); } break; case ConsoleKey.UpArrow: { if (keyInfo.Modifiers.ToString() == "Shift") plane.UpHeightStrong(); else plane.UpHeight(); Console.WriteLine("высота+"); Console.WriteLine(plane); ShowDispathcerInfo(plane.Dispathcers); } break; case ConsoleKey.DownArrow: { if (keyInfo.Modifiers.ToString() == "Shift") plane.DownHeightStrong(); else plane.DownHeight(); Console.WriteLine("высота-"); Console.WriteLine(plane); ShowDispathcerInfo(plane.Dispathcers); } break; case ConsoleKey.D: ManageDispatchers(ref plane); break; default: break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { Console.WriteLine(" Вы ввели: {0}", keyInfo.Key.ToString()); } } }