public static void Main() { var intCodes = System.IO.File .ReadAllText( "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day21.txt") .Split(",").Select(long.Parse).ToList(); var instructions = System.IO.File .ReadAllText( "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day21Instruction.txt"); var instructions2 = System.IO.File .ReadAllText( "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day21InstructionP2.txt"); var intComputer = new IntComputer { IntCodes = intCodes.Select(i => i).ToList() }; foreach (var el in instructions) { if (el == 13) { continue; } intComputer.Input.Enqueue(el); } intComputer.Start(); var output = intComputer.DumpFullOutput(); foreach (var el in output) { Console.Write((char)el); } Console.WriteLine($"Part1: amount of hull damage {output.Last()}"); var intComputer2 = new IntComputer { IntCodes = intCodes.Select(i => i).ToList() }; foreach (var el in instructions2) { if (el == 13) { continue; } intComputer2.Input.Enqueue(el); } intComputer2.Start(); var output2 = intComputer2.DumpFullOutput(); foreach (var el in output2) { Console.Write((char)el); } Console.WriteLine($"Part2: amount of hull damage {output2.Last()}"); }
private static void Main(string[] args) { var input = System.IO.File .ReadAllText( "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day13.txt") .Split(",").Select(long.Parse).ToList(); var intComputer = new IntComputer { IntCodes = input }; intComputer.Start(); while (intComputer.Status == ComputerStatus.Running || intComputer.Status == ComputerStatus.Waiting) { if (intComputer.Status == ComputerStatus.Waiting) { ParseOutput(intComputer.DumpFullOutput()); intComputer.Output.Clear(); var ball = _gameSurface.First(i => i.Value == 4).Key.Split(";").Select(int.Parse).ToList(); Console.WriteLine($"Ball: ({ball[0]}, {ball[1]})"); var slab = _gameSurface.First(i => i.Value == 3).Key.Split(";").Select(int.Parse).ToList(); Console.WriteLine($"Slab: ({slab[0]}, {slab[1]})"); var blocksRemaning = _gameSurface.Values.Count(i => i == 2); Console.WriteLine($"Blocks remaining: {blocksRemaning}"); Console.WriteLine(""); if (ball[0] > slab[0]) { intComputer.Input.Enqueue(1); } else if (ball[0] < slab[0]) { intComputer.Input.Enqueue(-1); } else { intComputer.Input.Enqueue(0); } intComputer.Start(); } } ParseOutput(intComputer.Output); }
public static void Main() { var intCodes = System.IO.File .ReadAllText( "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day25.txt") .Split(",").Select(long.Parse).ToList(); var rooms = new Dictionary <string, Room>(); var intComputer = new IntComputer { IntCodes = intCodes.Select(i => i).ToList() }; intComputer.Start(); while (intComputer.Status == ComputerStatus.Running || intComputer.Status == ComputerStatus.Waiting) { var output = intComputer.DumpFullOutput(); foreach (var el in output) { Console.Write((char)el); } var prsdOutput = ParseOutput(output); rooms[GetRoomName(prsdOutput)] = new Room { Items = GetItemList(prsdOutput), Name = GetRoomName(prsdOutput) }; if (intComputer.Status == ComputerStatus.Waiting) { var input = Console.ReadLine(); foreach (var el in input) { intComputer.Input.Enqueue(el); } intComputer.Input.Enqueue(10); } intComputer.Start(); } }
public static void Main() { var intComputer = new IntComputer { IntCodes = System.IO.File .ReadAllText( "C:\\Users\\Aaron\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day17.txt") .Split(",").Select(long.Parse).ToList() }; intComputer.Start(); var output = ParseAndPrintOutput(intComputer.DumpFullOutput()); var intersections = GetIntersections(output); Console.WriteLine($"Part1: The sum of the alignment parameters is {intersections.Values.Sum()}"); var path = GetPaths(output); var functions = CreateFunctions(path); var intCodes = System.IO.File .ReadAllText( "C:\\Users\\Aaron\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day17.txt") .Split(",").Select(long.Parse).ToList(); intCodes[0] = 2; intComputer = new IntComputer { IntCodes = intCodes }; foreach (var function in functions) { foreach (var element in function) { intComputer.Input.Enqueue(element); } } intComputer.Input.Enqueue(110); intComputer.Input.Enqueue(10); intComputer.Start(); var outputPart2 = intComputer.DumpFullOutput(); var parsedOutputPart2 = ParseAndPrintOutput(outputPart2); Console.WriteLine($"Part2: amount of dust collected: {outputPart2.Last()}"); }