Ejemplo n.º 1
0
        public static async Task <int> get_three_by_three_power_rating(fuel_cell top_left, List <fuel_cell> grid, int search_size)
        {
            int total_power = 0;

            int start_x = top_left.x;
            int start_y = top_left.y;

            for (int i = 0; i < search_size; i++)
            {
                for (int j = 0; j < search_size; j++)
                {
                    var temp = grid.FirstOrDefault(e => e.x == start_x + i && e.y == start_y + j);

                    if (temp != null)
                    {
                        total_power += temp.power_level;
                    }
                    else
                    {
                        return(0);
                    }
                }
            }
            return(total_power);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var input = 7347;

            List <fuel_cell> cells = new List <fuel_cell>();

            for (int i = 1; i <= 300; i++)
            {
                for (int j = 1; j <= 300; j++)
                {
                    fuel_cell cell = new fuel_cell()
                    {
                        x = i,
                        y = j
                    };

                    cell.power_level = cell.get_power_level(input);

                    cells.Add(cell);
                }
            }

            Console.WriteLine("Starting Task 1");
            Task <result> task1 = Task <result> .Factory.StartNew(() =>
            {
                var result = Part1(cells);
                return(result);
            });

            Console.WriteLine("Starting Task 2");
            Task <result> task2 = Task <result> .Factory.StartNew(() =>
            {
                var result = Part2(cells);
                return(result);
            });

            result res_one = task1.Result;

            Console.WriteLine("Part 1");
            Console.WriteLine(res_one.ToString());

            result res_two = task2.Result;

            Console.WriteLine("Part 2");
            Console.WriteLine(res_two.ToString());
        }