private async Task <StringResultTask> GetFirstTask() { string filePath = @"AdventOfCode2020.Calender.Day3.Input.txt"; IEnumerable <IVector>?vectors = await ParseHelper.GetInput(filePath, new Day3TobogganParser()); var startingY = vectors.Select(point => point.Point).Max(point => point.Y); var startingVector = vectors.First(vector => vector.Point.X == 0 && vector.Point.Y == startingY); var trajectory = new List <(TobogganMovmentKind movmentKind, int steps)> { (TobogganMovmentKind.Right, 3), (TobogganMovmentKind.Down, 1), }; TrajectoryConfiguration configuration = new TrajectoryConfiguration(new Day3TobogganManager(trajectory), vectors.ToList(), startingVector); var controller = new MapController(configuration); var steps = controller.Init(); var count = steps.Count(step => step.Vector.GetType() == typeof(TreeObstacle)); return(new StringResultTask("Part 1", $"Answer: {count}")); }
public MapController(TrajectoryConfiguration configuration) { Configuration = configuration; Map = CreateMap(configuration.Vectors, configuration.StartingPosition); }