public void RoverMovementTest() { #region Plateau List var map = new List <List <Coordinates> > { new List <Coordinates> { new Coordinates { X = 0, Y = 0 }, new Coordinates { X = 0, Y = 1 }, new Coordinates { X = 0, Y = 2 }, new Coordinates { X = 0, Y = 3 }, new Coordinates { X = 0, Y = 4 }, new Coordinates { X = 0, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 1, Y = 0 }, new Coordinates { X = 1, Y = 1 }, new Coordinates { X = 1, Y = 2 }, new Coordinates { X = 1, Y = 3 }, new Coordinates { X = 1, Y = 4 }, new Coordinates { X = 1, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 2, Y = 0 }, new Coordinates { X = 2, Y = 1 }, new Coordinates { X = 2, Y = 2 }, new Coordinates { X = 2, Y = 3 }, new Coordinates { X = 2, Y = 4 }, new Coordinates { X = 2, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 3, Y = 0 }, new Coordinates { X = 3, Y = 1 }, new Coordinates { X = 3, Y = 2 }, new Coordinates { X = 3, Y = 3 }, new Coordinates { X = 3, Y = 4 }, new Coordinates { X = 3, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 4, Y = 0 }, new Coordinates { X = 4, Y = 1 }, new Coordinates { X = 4, Y = 2 }, new Coordinates { X = 4, Y = 3 }, new Coordinates { X = 4, Y = 4 }, new Coordinates { X = 4, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 5, Y = 0 }, new Coordinates { X = 5, Y = 1 }, new Coordinates { X = 5, Y = 2 }, new Coordinates { X = 5, Y = 3 }, new Coordinates { X = 5, Y = 4 }, new Coordinates { X = 5, Y = 5 } }, }; #endregion var rover1 = new Rover(); var roverStrategy1 = new RoverMovementStrategy(rover1); var roverController1 = new RoverController(rover1, roverStrategy1, map); rover1.Position = new Coordinates { X = map.ElementAt(1).ElementAt(2).X, Y = map.ElementAt(1).ElementAt(2).Y }; rover1.Orientation = Orientation.E; var roverCommands1 = "M"; roverController1.Move(roverCommands1); Assert.Equal(2, rover1.Position.X); Assert.Equal(2, rover1.Position.Y); var roverCommands2 = "MMMM"; roverController1.Move(roverCommands2); Assert.Equal(5, rover1.Position.X); Assert.Equal(2, rover1.Position.Y); //Arrange //Act //Assert }
public void RoverMoveOutOfPlateauSouth() { #region Plateau List var map = new List <List <Coordinates> > { new List <Coordinates> { new Coordinates { X = 0, Y = 0 }, new Coordinates { X = 0, Y = 1 }, new Coordinates { X = 0, Y = 2 }, new Coordinates { X = 0, Y = 3 }, new Coordinates { X = 0, Y = 4 }, new Coordinates { X = 0, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 1, Y = 0 }, new Coordinates { X = 1, Y = 1 }, new Coordinates { X = 1, Y = 2 }, new Coordinates { X = 1, Y = 3 }, new Coordinates { X = 1, Y = 4 }, new Coordinates { X = 1, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 2, Y = 0 }, new Coordinates { X = 2, Y = 1 }, new Coordinates { X = 2, Y = 2 }, new Coordinates { X = 2, Y = 3 }, new Coordinates { X = 2, Y = 4 }, new Coordinates { X = 2, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 3, Y = 0 }, new Coordinates { X = 3, Y = 1 }, new Coordinates { X = 3, Y = 2 }, new Coordinates { X = 3, Y = 3 }, new Coordinates { X = 3, Y = 4 }, new Coordinates { X = 3, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 4, Y = 0 }, new Coordinates { X = 4, Y = 1 }, new Coordinates { X = 4, Y = 2 }, new Coordinates { X = 4, Y = 3 }, new Coordinates { X = 4, Y = 4 }, new Coordinates { X = 4, Y = 5 } }, new List <Coordinates> { new Coordinates { X = 5, Y = 0 }, new Coordinates { X = 5, Y = 1 }, new Coordinates { X = 5, Y = 2 }, new Coordinates { X = 5, Y = 3 }, new Coordinates { X = 5, Y = 4 }, new Coordinates { X = 5, Y = 5 } }, }; #endregion var rover1 = new Rover(); var roverStrategy1 = new RoverMovementStrategy(rover1); var roverController1 = new RoverController(rover1, roverStrategy1, map); rover1.Position = new Coordinates { X = map.ElementAt(1).ElementAt(2).X, Y = map.ElementAt(1).ElementAt(2).Y }; rover1.Orientation = Orientation.S; var rover1Commands = "MMMM"; roverController1.Move(rover1Commands); Assert.Equal(1, rover1.Position.X); Assert.Equal(0, rover1.Position.Y); }
static void Main(string[] args) { #region First Rover details var rover1 = new RoverData(); var coordinates = new Coordinates { X = 1, Y = 1 }; var route = new Route { Time = DateTime.Now, Coordinates = new List <Coordinates>() { coordinates } }; var roverStrategy1 = new RoverMovementStrategy(rover1, coordinates); var roverController1 = new RoverController(rover1, roverStrategy1, null); var rover1Commands = ""; do { Console.WriteLine("\tW"); Console.WriteLine("\tA"); Console.WriteLine("\tS"); Console.WriteLine("\tD"); Console.WriteLine(); Console.Write("Enter command:"); rover1Commands = Console.ReadLine(); roverController1.Move(rover1Commands); Console.WriteLine($"Rover one ->: ({DateTime.Now}) " + $"Coordinates are :({coordinates.X},{coordinates.Y})"); InitializeRoverToDB(rover1); } while (rover1Commands.CompareTo("x") < 0); // InitializeRoverToDB(rover1); #endregion /* roverController1.Move(rover1Commands); * * * Console.WriteLine($"Rover one final position is " + * $"({rover1.Position.X},{rover1.Position.Y}) " + * $"and orientation {rover1.Orientation.ToDescription()}"); #endregion * /* #region Second Rover details * var rover2 = new Rover(); * var roverStrategy2 = new RoverMovementStrategy(rover1); * var roverController2 = new RoverController(rover1, roverStrategy2, map); * rover1.Position = new Coordinates { X = map.ElementAt(3).ElementAt(3).X, Y = map.ElementAt(3).ElementAt(3).Y }; * rover1.Orientation = Orientation.E; * * var rover2Commands = "MMRMMRMRRM"; * roverController2.Move(rover2Commands); * Console.WriteLine($"Rover two final position is " + * $"({rover1.Position.X},{rover1.Position.Y}) " + * $"and orientation {rover1.Orientation.ToDescription()}"); * #endregion * * Console.WriteLine("\nExploring Mars!"); * Console.ReadKey(); * } */ Console.ReadKey(); }