def collect_dust(memory, main, functions, continuous_video_feed=False): memory[0] = 2 inputs = main + functions[0] + functions[1] + functions[2] + [121 if continuous_video_feed else 110, 10] intcode_computer = IntcodeComputer(memory, initial_inputs=inputs) intcode_computer.run() return intcode_computer.get_all_outputs()
def survey(commands): inputs = functools.reduce(lambda a, b: a + string_to_ascii_array(b), commands, []) intcode_computer = IntcodeComputer(origin_memory, inputs) intcode_computer.run() output = intcode_computer.get_all_outputs() try: print(ascii_array_to_string(output)) except ValueError: print(output[-1])
inputs = main + functions[0] + functions[1] + functions[2] + [121 if continuous_video_feed else 110, 10] intcode_computer = IntcodeComputer(memory, initial_inputs=inputs) intcode_computer.run() return intcode_computer.get_all_outputs() with open('input.txt', 'r') as f: origin_memory = [ int(x) for x in f.readline().split(',') ] # Part 1 intcode_computer = IntcodeComputer(origin_memory, []) intcode_computer.run() camera_view = parse_camera_view(intcode_computer.get_all_outputs()) print_view(camera_view) intersections = get_intersections(camera_view) alignment_parameters = [ x * y for x, y in intersections ] print(sum(alignment_parameters)) # Part 2 # Uncompressed sequence # L,10,R,8,L,6,R,6,L,8,L,8,R,8,L,10,R,8,L,6,R,6,R,8,L,6,L,10,L,10,L,10,R,8,L,6,R,6,L,8,L,8,R,8,R,8,L6,L,10,L,10,L8,L,8,R,8,R,8,L,6,L,10,L,10,L,8,L,8,R,8 # Main sequence # A,B,A,C,A,B,C,B,C,B
return screen, ball_x, paddle_x, score def print_screen(screen): for row in screen: print(''.join(row)) with open('input.txt', 'r') as f: origin_memory = [int(x) for x in f.readline().split(',')] # Part 1 intcode_computer = IntcodeComputer(origin_memory, []) intcode_computer.run() outputs = intcode_computer.get_all_outputs() block_count = 0 for index, output in enumerate(outputs): if index % 3 == 2 and output == 2: block_count += 1 print(block_count) # Part 2 memory = origin_memory.copy() memory[0] = 2 intcode_computer = IntcodeComputer(memory, []) screen = [[]] score = 0