示例#1
0
        public void Part3()
        {
            string[] input = new string[]
            {
                "#.#",
                ".#.",
                "#.#",
            };

            var map = new AsteroidMap(input);

            int visible = map.CountVisibleAsteroids(new Point(1, 1));

            Assert.Equal(4, visible);
        }
示例#2
0
        public void Part1()
        {
            string[] input = new string[]
            {
                ".#..#",
                ".....",
                "#####",
                "....#",
                "...##"
            };

            var map = new AsteroidMap(input);

            int visible = map.CountVisibleAsteroids(new Point(3, 4));

            Assert.Equal(8, visible);
        }
示例#3
0
        public void SolvePart1()
        {
            var input = System.IO.File.ReadAllLines("../../../input/day_10.txt");

            AsteroidMap map = new AsteroidMap(input);

            int   mostVisible = 0;
            Point location    = new Point();

            foreach (Point asteroid in map.AsteroidCoordinates)
            {
                int visible = map.CountVisibleAsteroids(asteroid);

                if (visible > mostVisible)
                {
                    mostVisible = visible;
                    location    = asteroid;
                }
            }

            Assert.Equal(263, mostVisible);
            Assert.Equal(23, location.x);
            Assert.Equal(29, location.y);
        }
示例#4
0
        public void Part5()
        {
            string[] input = new string[]
            {
                ".#..##.###...#######",
                "##.############..##.",
                ".#.######.########.#",
                ".###.#######.####.#.",
                "#####.##.#.##.###.##",
                "..#####..#.#########",
                "####################",
                "#.####....###.#.#.##",
                "##.#################",
                "#####.##.###..####..",
                "..######..##.#######",
                "####.##.####...##..#",
                ".#####..#.######.###",
                "##...#.##########...",
                "#.##########.#######",
                ".####.#.###.###.#.##",
                "....##.##.###..#####",
                ".#.#.###########.###",
                "#.#.#.#####.####.###",
                "###.##.####.##.#..##"
            };

            var map = new AsteroidMap(input);

            int visible = map.CountVisibleAsteroids(new Point(11, 13));

            var p = AsteroidBlaster.BlastAsteroids(map.AsteroidsPerAngle, 200);

            Assert.Equal(210, visible);
            Assert.Equal(8, p.x);
            Assert.Equal(2, p.y);
        }