public int Part1() { var oxigenGrid = new OxigenGrid(); while (OxigenGrid.IsPosiblePaths()) { try { oxigenGrid = new OxigenGrid(); IntCodeComputer computer = new IntCodeComputer(oxigenGrid, oxigenGrid); computer.Execute(_program); Console.WriteLine("SOLUTION " + OxigenGrid.MovementsToOrigin.Count); Console.Clear(); Console.WriteLine(Day13Utils.PrintBoard(oxigenGrid.GetGrid())); Console.WriteLine("----------------------------------"); } catch (Exception e) { //Console.WriteLine("End of simulation"); } } StringBuilder builder = new StringBuilder(); foreach (var value in oxigenGrid.GetGrid()) { builder.AppendLine($"{value.point.X},{value.point.Y},{value.value}"); } File.WriteAllText("grid.txt", builder.ToString()); Console.WriteLine("SOLUTION " + OxigenGrid.MovementsToOrigin.Count); Console.Clear(); Console.WriteLine(Day13Utils.PrintBoard(oxigenGrid.GetGrid())); Console.WriteLine("----------------------------------"); return(0); }
public long Part2() { var outputConsole = new OutputFixed(); var computer = new IntCodeComputer(new InputFixedValue(2), outputConsole); var result = computer.Execute(_program); return(outputConsole.GetOutPut()); }
public long Part1() { PaintingController paintingController = new PaintingController(); IntCodeComputer computer = new IntCodeComputer(paintingController, paintingController); computer.Execute(_program); return(paintingController.GetPaintedPanels().Count); }
public int Part1() { var gameGrid = new GameGrid(); IntCodeComputer computer = new IntCodeComputer(gameGrid, gameGrid); computer.Execute(_program); return(gameGrid.GetNumOfBlocks()); }
public static long ExecuteAmplifierControllerSoftware(long[] program, long setting, long previousOutput) { var inputConsole = new InputFixedList(setting, previousOutput); var outputConsole = new OutputFixed(); IntCodeComputer computer = new IntCodeComputer(inputConsole, outputConsole); computer.Execute(program); return(outputConsole.GetOutPut()); }
public long Execute(int inputValue) { var input = new InputFixedValue(inputValue); var output = new OutputFixed(); var computer = new IntCodeComputer(input, output); computer.Execute(_program); return(output.GetOutPut()); }
public long Part1() { var program = (long[])_program.Clone(); program[1] = 12; program[2] = 2; var computer = new IntCodeComputer(); var program2 = computer.Execute(program); return(program2[0]); }
public int Part2() { var program = (long[])_program.Clone(); for (int noun = 0; noun < 100; noun++) { for (int verb = 0; verb < 100; verb++) { program[1] = noun; program[2] = verb; var computer = new IntCodeComputer(); var program2 = computer.Execute(program); if (program2[0] == 19690720) { return(100 * noun + verb); } } } return(0); }
public string Part2() { PaintingController paintingController = new PaintingController(Color.White); IntCodeComputer computer = new IntCodeComputer(paintingController, paintingController); computer.Execute(_program); var paintedPanels = paintingController.GetPaintedPanels(); var allX = paintedPanels.Select(panel => panel.point.X).ToList(); var allY = paintedPanels.Select(panel => panel.point.Y).ToList(); var minX = allX.Min(); var maxX = allX.Max(); var width = (maxX - minX) + 1; var minY = allY.Min(); var maxY = allY.Max(); var height = (maxY - minY) + 1; var result = (new string(' ', width *height)).ToCharArray(); var result2 = new char[width, height]; foreach ((Point point, Color color)paintedPanel in paintedPanels) { if (paintedPanel.color == Color.White) { int index = (paintedPanel.point.X + (-1 * minX)) + ((paintedPanel.point.Y + (-1 * minY)) * width); result[index] = '#'; } } foreach ((Point point, Color color)paintedPanel in paintedPanels) { if (paintedPanel.color == Color.White) { int index = (paintedPanel.point.X + (-1 * minX)) * (paintedPanel.point.Y + (-1 * minY)); int x = paintedPanel.point.X + (-1 * minX); int y = paintedPanel.point.Y + (-1 * minY); result2[x, y] = '#'; } } StringBuilder builder = new StringBuilder(); for (int i = 0; i < result.Length; i++) { builder.Append(result[i]); if (i % width == 0) { builder.Append(Environment.NewLine); } } StringBuilder builder2 = new StringBuilder(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { builder2.Append(result2[x, y] == '#' ? '#' : ' '); } builder2.Append(Environment.NewLine); } return(builder.ToString()); }