Esempio n. 1
0
def part1(program):
    comp = IntComputer(program)
    out = comp.run_until_outputs()
    grid = defaultdict(lambda: 0)
    while len(out) == 3:
        x, y, tid = out
        grid[(x, y)] = tid
        out = comp.run_until_outputs()
    c = Counter(grid.values())
    return c[2]
Esempio n. 2
0
def part2(program):
    program = program[:]
    program[0] = 2
    comp = IntComputer(program)
    grid = defaultdict(lambda: 0)
    ball, paddle = None, None
    score = 0
    out = comp.run_until_outputs(0)
    while len(out) == 3:
        x, y, tid = out
        if x == -1:
            score = tid
        else:
            grid[(x, y)] = tid
            if tid == 4:
                ball = x
            if tid == 3:
                paddle = x
        # print(f'score={score}')
        # display_dict_as_grid(grid)
        v = get_input(ball, paddle)
        out = comp.run_until_outputs(v)
    return score