Example #1
0
        static void Main(string[] args)
        {
            do
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Clear();
                delegateConvertTemperature[] delArray =
                {
                    new TemperatureConverterImp().CtoF,
                    new TemperatureConverterImp().FtoC,
                    StaticTempConverters.CtoK,
                    StaticTempConverters.CtoRa,
                    StaticTempConverters.CtoRe,
                    StaticTempConverters.KtoC,
                    StaticTempConverters.RatoC,
                    StaticTempConverters.RetoC,
                };

                double f = TechnicalClass.Validate("Введите температуру в Фаренгейтах: ", x => x >= -459.67);
                Console.WriteLine($"Переводим в Цельсия: {delArray[1](f):f3}");

                double c = TechnicalClass.Validate("\nВведите температуру в Цельсия: ", x => x >= -273.15);
                Console.WriteLine($"Переводим в Фаренгейты:\t{delArray[0](c):f3}");
                Console.WriteLine($"Переводим в Кельвины:\t{delArray[2](c):f3}");
                Console.WriteLine($"Переводим в Ранкины:\t{delArray[3](c):f3}");
                Console.WriteLine($"Переводим в Реомюры:\t{delArray[4](c):f3}");

                Console.WriteLine("\nНажмите Escape, чтобы выйти, или любую другую клавишу, чтобы продолжыть");
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }
        public static void Main()
        {
            do
            {
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Yellow;
                try
                {
                    Console.OutputEncoding = Encoding.GetEncoding("Unicode");
                    Lenght = (int)TechnicalClass.Validate("Укажите координату y: ", x => x == (int)x);
                    Width  = (int)TechnicalClass.Validate("Укажите координату x: ", x => x == (int)x);

                    Robot rob  = new Robot();             // конкретный робот
                    Steps delR = new Steps(rob.Right);    // направо
                    Steps delL = new Steps(rob.Left);     // налево
                    Steps delF = new Steps(rob.Forward);  // вперед
                    Steps delB = new Steps(rob.Backward); // назад

                    Console.Write("Введите строку комманд: ");
                    char[] commandsStringArray = TechnicalClass.WayParseAndValidate(Console.ReadLine());

                    Steps[] trace = new Steps[commandsStringArray.Length];

                    for (int i = 0; i < trace.Length; i++)
                    {
                        switch (commandsStringArray[i])
                        {
                        case 'R':
                            trace[i] = delR;
                            break;

                        case 'L':
                            trace[i] = delL;
                            break;

                        case 'F':
                            trace[i] = delF;
                            break;

                        case 'B':
                            trace[i] = delB;
                            break;
                        }
                    }

                    string[,] matrix = MatrixGen();

                    for (int i = 0; i < trace.Length; i++)
                    {
                        matrix[Lenght - rob.y - 1, rob.x] = "+ ";
                        trace[i]?.Invoke();
                    }
                    matrix[Lenght - rob.y - 1, rob.x] = "* ";

                    TechnicalClass.MatrixPrint(matrix);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.WriteLine("\nНажмите Escape, чтобы выйти, или любую другую клавишу, чтобы продолжыть");
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }