Пример #1
0
        private static void Execute(Rover rover, ModifyRoversPosition modifyRoversPosition, string commands)
        {
            try
            {
                foreach (char item in commands)
                {
                    string      actionString = item.ToString();
                    RoverAction roverAction  = RoverAction.N;

                    Enum.TryParse <RoverAction>(actionString, true, out roverAction);

                    ICommand roverCommand = new RoverCommand(rover, Creator.GetAction(roverAction));
                    modifyRoversPosition.SetCommand(roverCommand);
                    modifyRoversPosition.Invoke();
                }
            }
            catch (MovementException mEx)
            {
                Console.WriteLine(ExceptionHelper.GetExceptionMessage(mEx));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ExceptionHelper.GetExceptionMessage(ex));
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            var reader = Creator.GetReader(ReaderElements.Standard);

            Creator.GetWriter(WritingElements.Startup).Write();

            Creator.GetWriter(WritingElements.GetGridDimensions).Write();

            string reading = reader.Read();

            var dimensions = ReaderHelper.GetIntegretValuesFromStringArray(reading);

            var area = new Area(dimensions[0], dimensions[1]);

            string commandText = string.Empty;

            while (commandText != "E")
            {
                var modifyRoversPosition = new ModifyRoversPosition();

                Creator.GetWriter(WritingElements.GetRoversPosition).Write();

                string positionInfo = reader.Read();

                var position = ReaderHelper.GetRoverPosition(positionInfo);

                var rover = new Rover(position.Value.First(), position.Value.Last(), position.Key, area);

                Creator.GetWriter(WritingElements.GetRoversCommand).Write();

                string movementCommands = reader.Read();

                Execute(rover, modifyRoversPosition, movementCommands);

                Console.WriteLine(rover);

                Console.WriteLine("Calculate Again? C - Continue, E - End");

                commandText = Console.ReadLine().ToUpper();
            }

            Console.ReadLine();
        }