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}"));
        }
Exemple #2
0
 public MapController(TrajectoryConfiguration configuration)
 {
     Configuration = configuration;
     Map           = CreateMap(configuration.Vectors, configuration.StartingPosition);
 }