コード例 #1
0
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
コード例 #2
0
ファイル: main.py プロジェクト: LaurenStanley/AdventofCode
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]
コード例 #3
0
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
コード例 #4
0
ファイル: main.py プロジェクト: LaurenStanley/AdventofCode
def part_one():
    rawinput = parse_data()
    filled_indices = create_blank_list(rawinput)
    integers = IntComputer.interpreter(filled_indices)