def test1(program): """ >>> test1([104,1125899906842624,99]) [1125899906842624] >>> test1([1102,34915192,34915192,7,4,7,99,0]) [1219070632396864] >>> test1([109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99]) [109, 1, 204, -1, 1001, 100, 1, 100, 1008, 100, 16, 101, 1006, 101, 0, 99] """ comp = IntComputer(program) return comp.run_program()
def part1(program): comp = IntComputer(program) inputs = """\ NOT A J NOT B T OR T J NOT C T OR T J AND D J WALK """ comp.inputs.extend([ord(c) for c in inputs]) out = comp.run_program() # print(''.join([chr(x) for x in out[:-1]])) return out[-1]
def part2(program): comp = IntComputer(program) comp.mem[0] = 2 # A L,6, R,8, R,12, L,6, L,8, # B L,10, L,8, R,12, # A L,6, R,8, R,12, L,6, L,8, # C L,8, L,10, L,6, L,6, # B L,10, L,8, R,12, # C L,8, L,10, L,6, L,6, # B L,10, L,8, R,12, # A L,6, R,8, R,12, L,6, L,8, # C L,8, L,10, L,6, L,6, # B L,10, L,8, R,12, movement = [ # broke things up manually 'A,B,A,C,B,C,B,A,C,B', 'L,6,R,8,R,12,L,6,L,8', 'L,10,L,8,R,12', 'L,8,L,10,L,6,L,6', 'n' ] for line in movement: comp.inputs.extend([ord(c) for c in line] + [10]) out = comp.run_program() # print(''.join([chr(x) for x in out[:-1]])) return out[-1]
def part2(program): comp = IntComputer(program, 2) return comp.run_program()[0]