#BlueyNeilo 2019 #AoC Q.7a #Refactored from intcode import Intcode, parse_file from itertools import permutations AMPS = 5 ic = Intcode(parse_file("input.txt")) perms = list(permutations(range(AMPS))) #Permutations of [0..AMPS-1] max_out = 0 #Maximum output signal for p in perms: last_out = 0 for i in range(AMPS): ic.reset() ic.sim_input([p[i], last_out]) last_out = ic.execute_yield().pop() max_out = max(max_out, last_out) print(max_out)
for i in range(current_loc[0] - local_render, current_loc[0] + local_render + 1): #range(minx,maxx+1): if (i, j) == current_loc: lines += d[current_dir] else: if (i, j) in panels: lines += c[panels[i, j]] else: lines += c[0] lines += "\n" print(lines) #Main logic while not ic.halted: ic.sim_input([current_col]) unwrap = ic.execute_yield(outputs=2) if unwrap: [paint_col, new_turn] = unwrap panels[current_loc] = paint_col current_dir = (current_dir + turn[new_turn]) % 4 current_loc = tuple( [sum(x) for x in zip(current_loc, dir[current_dir])]) current_col = 0 if current_loc in panels: current_col = panels[current_loc] draw_panels(panels, current_loc, current_dir) print(len(panels))