def test3(): oppcode3 = [1002, 4, 3, 4, 33] pointer = 0 returnCode = [0, 0, None] while (returnCode[0] != 99): returnCode = callComputer(oppcode3, pointer) pointer = returnCode[1] print("Test 3, Return code is 99:"), returnCode[0] == 99
def test1(): returnCode = [0, None, None] oppcode1 = oppcode[:] pointer1 = pointer returnCode[0] = 0 while (returnCode[0] != 99): returnCode = callComputer(oppcode1, pointer1) if returnCode[0] == 99: print("Part 1 result: Oppcode[0] is 3790645:"), oppcode1[0]==3790645 else: pointer1 = returnCode[1]
def test4(): oppcode4 = [3, 0, 4, 0, 99] pointer = 0 returnCode = [0, 0, None] inputCode = 123 results = [] while (returnCode[0] != 99): returnCode = callComputer(oppcode4, pointer, inputCode) pointer = returnCode[1] if returnCode[2]: results.append(returnCode[2]) print("Test 4, Output value is 123:"), results[0] == 123
def test5(): oppcode5 = oppcodeDay5[:] pointer = 0 returnCode = [0, 0, None] inputCode = 1 results = [] while (returnCode[0] != 99): returnCode = callComputer(oppcode5, pointer, inputCode) pointer = returnCode[1] if returnCode[2]: results.append(returnCode[2]) print("Test 5: Return code is 5821753:"), results[-1] == 5821753
def test2(): for x in range(0, 99): for y in range(0, 99): returnCode = [0, None, None] pointer2 = pointer oppcode2 = oppcode[:] oppcode2[1] = x oppcode2[2] = y while (returnCode[0] != 99): returnCode = callComputer(oppcode2, pointer2) if (returnCode[0] != 99): pointer2 = returnCode[1] if oppcode2[0] == 19690720: print("Part 2 result is 6577:"), str(oppcode2[1])+str(oppcode2[2]) == "6577" break
def test6(): oppcode = oppcodeDay9[:] inputCode = 1 pointer = 0 relativebase = 0 returnCode = [pointer, None, None, relativebase] results = [] setMemory(oppcode) while (returnCode[0] != 99): returnCode = callComputer(oppcode, pointer, inputCode, relativebase) pointer = returnCode[1] if returnCode[3] or returnCode[3] == 0: relativebase = returnCode[3] if returnCode[2] or returnCode[2] == 0: results.append(returnCode[2]) print("Test 6: Return code is 3533056970:"), results[0] == 3533056970
from settings import oppcodeDay5 from intcodeComputer import callComputer oppcode = oppcodeDay5[:] inputCode = 5 pointer = 0 returnCode = [0, None, None] results = [] while (returnCode[0] != 99): returnCode = callComputer(oppcode, pointer, inputCode) pointer = returnCode[1] if returnCode[2] or returnCode[2] == 0: results.append(returnCode[2]) #11956381 print("Return code:", results)
from settings import oppcodeDay13 from intcodeComputer import callComputer, setMemory oppcode = oppcodeDay13[:] inputCode = 0 pointer = 0 relativebase = 0 returnCode = [pointer, None, None, relativebase] results = [] outputSequence = [] setMemory(oppcode) while (returnCode[0] != 99): returnCode = callComputer(oppcode, pointer, inputCode, relativebase) pointer = returnCode[1] if returnCode[3] or returnCode[3] == 0: relativebase = returnCode[3] if returnCode[2] or returnCode[2] == 0: if len(outputSequence) < 2: outputSequence.append(returnCode[2]) else: outputSequence.append(returnCode[2]) results.append(outputSequence) outputSequence = [] numberOfBlockTiles = 0 for sequence in results:
inputs = [0, 1, 2, 3, 4] phases = permutations(inputs, 5) results = [] for phase in phases: previousOutput = 0 for amplifier in phase: pointer = 0 returnCode = [None, pointer, None] oppcode = oppcodeDay7[:] firstRun = True while (returnCode[0] != 99): if (firstRun): returnCode = callComputer(oppcode, pointer, amplifier) pointer = returnCode[1] firstRun = False else: returnCode = callComputer(oppcode, pointer, previousOutput) pointer = returnCode[1] if (returnCode[2] or returnCode[2] == 0): previousOutput = returnCode[2] results.append(previousOutput) #225056 print("Output is 225056:"), max(results) == 225056