def program_springdroid(intcode_program):
    computer = Computer(intcode_program)
    computer.start()
    process_computer_output(computer)
    for line in JUMPSCRIPT:
        set_computer_input(computer, line)
    set_computer_input(computer, 'WALK')
    return process_computer_output(computer)
def calculate_alignment_sum(program):
    computer = Computer(program)
    computer.start()
    alignment_sum = 0
    image = read_image_input(computer)
    print_image(image)
    for y in range(len(image)):
        for x in range(len(image[0])):
            if is_intersection(image, x, y):
                alignment_sum += x * y
    return alignment_sum
def get_dust_collection_amount(program):
    program[0] = 2  # Wake up robot
    computer = Computer(program)
    computer.start()
    image, robot_position, robot_direction = read_image_output(computer)
    print_image(image)
    print(f'\nRobot found at {robot_position} facing {str(robot_direction)}')
    path = get_scaffold_path(image, robot_position, robot_direction)
    print(f'Coverage path:\n{path}')
    functions, main_routine = get_functions(path)
    process_computer_output(computer)
    return run_traversal_program(computer, functions, main_routine)
Exemple #4
0
def main():
    with open('data.txt', 'r') as f:
        program = f.read()
    program = [int(i) for i in program.strip().split(',')]
    computer = Computer(program)
    computer.start()
    while True:
        while computer.has_output():
            print(chr(computer.get_output()), end='')
        command = input()
        if command == 'exit':
            break
        command = list(command)
        while command:
            computer.set_input(ord(command.pop(0)))
        computer.set_input(ord('\n'))
    computer.terminate()
Exemple #5
0
 def _get_value_from_robot(self, point):
     computer = Computer(self.program)
     computer.start()
     computer.set_input(point.x)
     computer.set_input(point.y)
     return computer.get_output()