Пример #1
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("Assumindo uma posição original (x,y), a aplicação irá receber vetores de coordenadas na seguinte forma:");
            System.Console.WriteLine("[Direção, Intensidade], sendo que Direção pode ser N,S,L,O (Norte, Sul, Leste e Oeste) e intensidade é um inteiro.");

            Coordinate          coordinate          = new Coordinate(1, 1);
            CoordinateNavigator navigator           = new CoordinateNavigator(coordinate);
            CoordinateNavigatorCommandParser parser = new CoordinateNavigatorCommandParser();

            while (true)
            {
                System.Console.WriteLine($"A coordenada atual é {navigator.Coordinate.ToString()}, digite o comando [Direção, Intensidade] na linha abaixo: ");

                string command = System.Console.ReadLine();

                try
                {
                    NavigatorCommand navigatorCommand = parser.Parse(command);
                    navigator.Navigate(navigatorCommand);
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine(ex.Message);
                }
            }
        }
Пример #2
0
        public void Should_navigate_coordinates_command()
        {
            var coordinate = new Coordinate(-10, 0);
            var navigator  = new CoordinateNavigator(coordinate);

            navigator.Navigate(new NavigatorCommand {
                Direction = Direction.L, Intensity = 14
            });
            navigator.Coordinate.Should().Be(new Coordinate(4, 0));
        }
Пример #3
0
        public IActionResult Navigate([FromForm] NavigatorCommandBindingModel model)
        {
            var coordinate = new Coordinate(model.LastCoordinateX, model.LastCoordinateY);
            var navigator  = new CoordinateNavigator(coordinate);

            navigator.Navigate(new NavigatorCommand
            {
                Direction = model.Direction,
                Intensity = model.Intensity
            });

            return(Json(new
            {
                X = navigator.Coordinate.X,
                Y = navigator.Coordinate.Y,
            }));
        }
Пример #4
0
        public void Should_navigate_coordinates_sequentially_2()
        {
            var coordinate = new Coordinate(-10, 0);
            var navigator  = new CoordinateNavigator(coordinate);

            navigator.Navigate(Direction.L, 14);
            navigator.Coordinate.Should().Be(new Coordinate(4, 0));

            navigator.Navigate(Direction.N, 27);
            navigator.Coordinate.Should().Be(new Coordinate(4, 27));

            navigator.Navigate(Direction.O, 33);
            navigator.Coordinate.Should().Be(new Coordinate(-29, 27));

            navigator.Navigate(Direction.S, 20);
            navigator.Coordinate.Should().Be(new Coordinate(-29, 7));

            navigator.Navigate(Direction.L, 15);
            navigator.Coordinate.Should().Be(new Coordinate(-14, 7));
        }
Пример #5
0
        public void Should_navigate_coordinates_sequentially_1()
        {
            var coordinate = new Coordinate(8, 12);
            var navigator  = new CoordinateNavigator(coordinate);

            navigator.Navigate(Direction.N, 23);
            navigator.Coordinate.Should().Be(new Coordinate(8, 35));

            navigator.Navigate(Direction.O, 7);
            navigator.Coordinate.Should().Be(new Coordinate(1, 35));

            navigator.Navigate(Direction.S, 40);
            navigator.Coordinate.Should().Be(new Coordinate(1, -5));

            navigator.Navigate(Direction.L, 33);
            navigator.Coordinate.Should().Be(new Coordinate(34, -5));

            navigator.Navigate(Direction.N, 15);
            navigator.Coordinate.Should().Be(new Coordinate(34, 10));
        }