/// <summary>Главное меню</summary> /// <param name="menu">Массив содержащий пункты меню</param> private static void MainMenu(string[] menu) { string menuMessage = MenuMessage(menu); bool isExit = false; while (!isExit) { Print(); int input = NumberInput(menuMessage, 0, menu.Length - 1); switch (input) { case 1: //search ways waySearcher.SearchWays(); break; case 2: //search ways waySearcher.SearchWaysRecurrent(); break; case 3: //create new field Print(); int width = NumberInput(messages[Messages.EnterWidth], WaySearcher.MIN_WIDTH, WaySearcher.MAX_WIDTH, false); int height = NumberInput(messages[Messages.EnterHeight], WaySearcher.MIN_HEIGHT, WaySearcher.MAX_HEIGHT, false); waySearcher = new WaySearcher(width, height); break; case 4: //add obstacle Print(); int column = NumberInput(messages[Messages.EnterColumn], 0, waySearcher.Width - 1, false); int row = NumberInput(messages[Messages.EnterRow], 0, waySearcher.Height - 1, false); waySearcher.AddObstacle(column, row); break; case 5: //add random obstacle bool isAdded = false; while (!isAdded) { column = rnd.Next(waySearcher.Width); row = rnd.Next(waySearcher.Height); isAdded = waySearcher.AddObstacle(column, row); } break; case 6: //delete calculations waySearcher.ClearField(false); break; case 7: //delete obstacles waySearcher.ClearField(true); break; case 0: //exit isExit = true; break; } } }
static int Main(string[] args) { #region ---- INIT ---- //Изменяем размер окна консоли, чтобы влезали все художества с графом Console.SetWindowSize(CONSOLE_WINDOW_W, CONSOLE_WINDOW_H); //Обработка аругментов командной строки if (args.Length != 0) { if (args[0] == arguments[Arguments.Help])//Вывод справки по аргументам { Console.WriteLine(arguments[Arguments.HelpText]); return(0); } else { for (int i = 0; i < args.Length; i++) { if (args[i] == arguments[Arguments.Seed])//Изменение seed'a { try { int.TryParse(args[i + 1], out seed); } catch { } } else if (args[i] == arguments[Arguments.Delay])//Изменение задержки визуализации { try { int.TryParse(args[i + 1], out delay); } catch { } } } } } if (seed != 0) { rnd = new Random(seed); } else { rnd = new Random();//2 } //Формируем сообщение главного меню string mainMenuMessage = MenuMessage(mainMenu); #endregion #region ---- SEARCHER MAKING ---- waySearcher = new WaySearcher(WaySearcher.MAX_WIDTH, WaySearcher.MAX_HEIGHT); waySearcher.Delay = delay; #endregion #region ---- MAIN WORK CYCLE ---- MainMenu(mainMenu); #endregion return(0); }