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(); } }