示例#1
0
        public static void PartTwo()
        {
            long[] data = InputHelper.GetIntcodeFromFile("13");

            IntcodeComputer computer = new IntcodeComputer(data, IntcodeMode.Quiet | IntcodeMode.Blocking);

            computer.Context.Data[0] = 2;
            List <Tile> tiles = new List <Tile>();

            while (!computer.IsFinished)
            {
                computer.RunUntilInput();
                UpdateTiles(tiles, computer.OutputQueue.ToList().Sublists(3).Select(t => new Tile(t[0], t[1], t[2])).ToList());
                computer.OutputQueue.Clear();
                Display(tiles);
                int currentBallX = (int)tiles.First(t => t.Type == Tile.TileId.Ball).X;
                int currentPadX  = (int)tiles.First(t => t.Type == Tile.TileId.Paddle).X;
                computer.InputQueue.Enqueue(currentBallX - currentPadX);
                computer.Step();
            }
        }