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)
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()
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()