def part1(): """Output the answer to part 1 - """ cpu = IntCodeProcessor(path='day11input.txt') heading = (0, 1) path = [(0, 0)] paint = {} result = None next_input = None while result is None: try: result = cpu.execute_program(next_input, reset=False) except ExecutionError as err: assert err.reason == ExecutionCode.NEED_INPUT pass output_count = len(cpu.outputs) assert output_count == 2 or output_count == 0 if output_count == 2: new_color = cpu.outputs.pop(0) turn = cpu.outputs.pop(0) heading = step_robot(new_color, turn, path, heading, paint) next_input = paint.get(path[-1], 0) print(f'Part 1 answer: {len(paint)}')
def part1(inputs=None): """Output the answer to part 1 - """ cpu = IntCodeProcessor(path='day13input.txt') output = cpu.execute_program() block_count = sum( [1 for instruction in output[2::3] if instruction == BLOCK]) print(f'Part 1 answer: {block_count}')
def part2(): """Output the answer to part 2 - What's the final score""" program = IntCodeProcessor.load_program('day13input.txt') program[0] = 2 cpu = IntCodeProcessor(program) result = None next_input = None ball_pos = None paddle_pos = None score = None while result is None: try: result = cpu.execute_program(next_input, reset=False) except ExecutionError as err: assert err.reason == ExecutionCode.NEED_INPUT ball_pos, paddle_pos, score = process_output(cpu.outputs, ball_pos, paddle_pos, score) cpu.outputs = [] next_input = next_input_for(ball_pos, paddle_pos) print(f'Part 2 answer: {score}')
from intcode import IntCodeProcessor cpu = IntCodeProcessor(path='day05input.txt') print('Part 1 answer: ', cpu.execute_program(1)[-1]) print('Part 2 answer: ', cpu.execute_program(5)[0])
if __name__ == '__main__': #part1() part2() cpu = IntCodeProcessor(path='day11input.txt') heading = (0, 1) path = [(0, 0)] paint = {} result = None next_input = 1 while result is None: try: result = cpu.execute_program(next_input, reset=False) except ExecutionError as err: assert err.reason == ExecutionCode.NEED_INPUT pass output_count = len(cpu.outputs) assert output_count == 2 or output_count == 0 if output_count == 2: new_color = cpu.outputs.pop(0) turn = cpu.outputs.pop(0) heading = step_robot(new_color, turn, path, heading, paint) next_input = paint.get(path[-1], 0) s = {} for loc, color in paint.items(): s.setdefault(loc[1], []).append((loc[0], color))
def generate_thruster_signal(program, phase_settings): cpu = IntCodeProcessor(program) signal = 0 for phase in phase_settings: signal = cpu.execute_program([phase, signal])[0] return signal