Esempio n. 1
0
def main():
    prog_input = parse_program_input(sys.stdin.read().strip())
    prog = Program(prog_input)
    prog.execute()
    view = prog.output_values
    view = ''.join(map(chr, view)).strip()
    print(view)
    viewlines = view.splitlines()
    alignment = sum(x*y for (x,y) in intersections(viewlines, SCAFFOLD_S))
    print("Alignment:", alignment)
    grid = LineGrid(viewlines)
    print("Route:")
    print(','.join(t+str(s) for (t,s) in find_path(grid)))
    # I didn't find this programmatically, just from inspection
    patternA = 'L,12,L,12,R,12'
    patternB = 'L,8,L,8,R,12,L,8,L,8'
    patternC = 'L,10,R,8,R,12'
    route = 'A,A,B,C,C,A,B,C,A,B'
    feed = 'n\n'
    input_string = '\n'.join([route, patternA, patternB, patternC, feed])
    prog_data = list(prog_input)
    prog_data[0] = 2
    prog = Program(prog_data)
    prog.run_input(input_string)
    print(''.join(chr(v) if v < 256 else '\n%s'%v for v in prog.output_values))
Esempio n. 2
0
def run_droid(prog_input, droid_input):
    prog = Program(prog_input)
    prog.run_input(droid_input)
    last = rindex(prog.output_values, ord('\n')) + 1
    print(''.join(map(chr, prog.output_values[:last])))
    print(prog.output_values[last:])