示例#1
0
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()
示例#2
0
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])
示例#3
0
    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
示例#4
0
    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