Esempio n. 1
0
        static void Main(string[] args)
        {
            var cabinet = new ArcadeCabinet(Day13.GetPart2IntCode());

            while (true)
            {
                var key = Console.ReadKey();
                Console.Clear();
                switch (key.Key)
                {
                case ConsoleKey.Q:
                    return;

                case ConsoleKey.LeftArrow:
                    cabinet.MoveJoystick(JoystickPosition.Left);
                    break;

                case ConsoleKey.RightArrow:
                    cabinet.MoveJoystick(JoystickPosition.Right);
                    break;

                case ConsoleKey.UpArrow:
                    cabinet.MoveJoystick(JoystickPosition.Center);
                    break;

                default:
                    break;
                }
                cabinet.DrawFrame();
            }
        }
        public void CountBlockTilesTest()
        {
            var program = File.ReadAllText("Game.txt");

            var arcadeCabinet = new ArcadeCabinet(program);

            arcadeCabinet.Play();

            Assert.Equal(329, arcadeCabinet.BlockTilesCount);
        }
        public void HighScoreTest()
        {
            var program = File.ReadAllText("Game.txt");

            var arcadeCabinet = new ArcadeCabinet(program, true);

            arcadeCabinet.Play();

            Assert.Equal(15973, arcadeCabinet.Score);
        }
Esempio n. 4
0
        public Day13()
        {
            var arcadeCabinet = new ArcadeCabinet();

            arcadeCabinet.Run();
            _answer1 = arcadeCabinet.Blocks;

            arcadeCabinet.Run(2);
            _answer2 = arcadeCabinet.Score;
        }
Esempio n. 5
0
        protected override string Solve2(IEnumerable <string> inputs)
        {
            var program = inputs.First().ToProgram();
            var cpu     = ServiceProvider.GetRequiredService <IntCodeCpu>();

            var arcade = new ArcadeCabinet(cpu, program)
                         .SetFreePlay()
                         .SetAutoPlay();

            return($"{ arcade.HighScore}");
        }
Esempio n. 6
0
        protected override string Solve(IEnumerable <string> inputs)
        {
            var program = inputs.First().ToProgram();
            var cpu     = ServiceProvider.GetRequiredService <IntCodeCpu>();
            var arcade  = new ArcadeCabinet(cpu, program);

            var blockTiles = arcade.VideoBuffer.Tiles.Values.Where(x => x.Type == TileType.Block);

            AssertExpectedResult(398, blockTiles.Count());

            return($"\r\nThe progam starts with {blockTiles.Count()} block tiles.");
        }
Esempio n. 7
0
        public async Task Part1(long[] outputs, int expectedResult)
        {
            var intcodeComputer = Substitute.For <IIntcodeComputer>();

            var cabinet = new ArcadeCabinet(intcodeComputer);
            var tiles   = new List <long>();

            cabinet.OnTileUpdated += tile => tiles.Add(tile.Item2);

            var game = cabinet.RunGame();

            foreach (var output in outputs)
            {
                intcodeComputer.OnOutput += Raise.Event <Action <long> >(output);
            }

            await game;

            Assert.AreEqual(expectedResult, tiles.Count);
        }
Esempio n. 8
0
        public MainWindow()
        {
            InitializeComponent();
            AmplificationCircuit c = new AmplificationCircuit();
            //c.SolveTask1();
            //c.SolveTask2();

            SensorBoost s = new SensorBoost();

            s.Tests();

            ArcadeCabinet ac = new ArcadeCabinet();

            ac.solveTask1();

            /*
             * N_BodyProblem prob = new N_BodyProblem();
             *
             */
        }