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); } } }
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)); }
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, })); }
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)); }
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)); }