def run_amplifiers(sequence, input_value): inputs = parse_data() outputA, codeA = IntComputer.interpreter(inputs, [0, sequence[0]]) outputB, codeB = IntComputer.interpreter(inputs, [outputA, sequence[1]]) outputC, codeC = IntComputer.interpreter(inputs, [outputB, sequence[2]]) outputD, codeD = IntComputer.interpreter(inputs, [outputC, sequence[3]]) outputE, codeE = IntComputer.interpreter(inputs, [outputD, sequence[4]]) print(outputE, codeE) while True: outputA, codeA = IntComputer.interpreter(inputs, [outputE, outputE]) if codeA == 99: outputA = outputE outputB, codeB = IntComputer.interpreter(inputs, [outputA, outputA]) if codeB == 99: outputB = outputB outputC, codeC = IntComputer.interpreter(inputs, [outputB, outputB]) if codeC == 99: outputC = outputB outputD, codeD = IntComputer.interpreter(inputs, [outputC, outputC]) if outputD == 99: outputD = outputC outputE, codeE = IntComputer.interpreter(inputs, [outputD, outputD]) if codeE == 99: return outputE #if codeA == 99: outputA = outputE # if outputD == None: # outputD = outputC # if outputC == None: # outputC = outputB # if outputB == None: # outputB = outputA # if outputA == None: # outputA = outputE # print(outputE) if outputA == None and outputB == None and outputC == None and outputD == None: print('Halted') return outputE break
def run_amplifiers(sequence,input_value): inputsA = parse_data() inputsB = parse_data() inputsC = parse_data() inputsD = parse_data() inputsE = parse_data() iA = 0 iiiA = 0 iB = 0 iiiB = 0 iC = 0 iiiC = 0 iD = 0 iiiD = 0 iE = 0 iiiE = 0 initial_conditionsA = [sequence[0],0] initial_conditionsB = [sequence[1]] initial_conditionsC = [sequence[2]] initial_conditionsD = [sequence[3]] initial_conditionsE = [sequence[4]] outputEs = [] while True: outputA,inputsA,iA,iiiA = IntComputer.interpreter(inputsA,initial_conditionsA,iA,iiiA) initial_conditionsB.append(outputA) outputB,inputsB,iB,iiiB = IntComputer.interpreter(inputsB,initial_conditionsB,iB,iiiB) initial_conditionsC.append(outputB) outputC,inputsC,iC,iiiC = IntComputer.interpreter(inputsC,initial_conditionsC,iC,iiiC) initial_conditionsD.append(outputC) outputD,inputsD,iD,iiiD = IntComputer.interpreter(inputsD,initial_conditionsD,iD,iiiD) initial_conditionsE.append(outputD) outputE,inputsE,iE,iiiE = IntComputer.interpreter(inputsE,initial_conditionsE,iE,iiiE) initial_conditionsA.append(outputE) outputEs.append(outputE) if iE == None: return outputEs[-2]
def amplifiers2(sequence,input_value): output_values = [] i = 0 j = 0 while True: for i in range(5): inputs = parse_data() sequence_value = sequence[i] if j == 0: input_values = (input_value,sequence_value) if j != 0: input_values = (input_value,input_value) output_value = IntComputer.interpreter(inputs,input_values) print(output_value) if output_value == 'Halt': return output_values[-1] break else: output_values.append(output_value) input_value = output_value i = 0 j += 1
def part_one(): rawinput = parse_data() filled_indices = create_blank_list(rawinput) integers = IntComputer.interpreter(filled_indices)