Esempio n. 1
0
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()
Esempio n. 2
0
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]
Esempio n. 3
0
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]
Esempio n. 4
0
def part2(program):
    comp = IntComputer(program, 2)
    return comp.run_program()[0]