static void Main(string[] args) { var n = int.Parse(Console.ReadLine()); var originRaw = Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToList(); var origin = new Point(originRaw.First(), originRaw.Last()); var robot = new SmartRobot(origin); for (var i = 0; i < n; i++) { var moveRaw = Console.ReadLine().Split(' ').ToList(); var direction = Enum.Parse <RobotMoveDirection>(moveRaw.First()); var steps = int.Parse(moveRaw.Last()); robot.Move(new RobotMove(direction, steps)); } Console.WriteLine($"=> Cleaned: {robot.CleanedSpaces}"); }
public void CrossTest() { var runs = 100; var moves = 1000; for (var t = 0; t < runs; t++) { var randomizer = new Random(); var origin = new Point(randomizer.Next(-1000, 1000), randomizer.Next(-1000, 1000)); var naiveRobot = new NaiveRobot(origin); var smartRobot = new SmartRobot(origin); for (var i = 0; i < moves; i++) { var move = GetRandomMove(randomizer); naiveRobot.Move(move); smartRobot.Move(move); Assert.Equal(naiveRobot.CleanedSpaces, smartRobot.CleanedSpaces); } } }