Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ind = 0
- def getval(param, program, index, jump):
- return prog[prog[index+jump]] if not param else prog[index+jump]
- with open('inputs.txt') as f:
- prog = list(map(int, f.readline().split(',')))
- while prog[ind] != 99:
- instruction = (str(prog[ind])).zfill(5)
- param3 = int(instruction[0])
- param2 = int(instruction[1])
- param1 = int(instruction[2])
- opcode = int(instruction[3:])
- if opcode == 1:
- prog[prog[ind+3]] = getval(param1, prog, ind, 1) + getval(param2, prog, ind, 2)
- ind += 4
- elif opcode == 2:
- prog[prog[ind+3]] = getval(param1, prog, ind, 1) * getval(param2, prog, ind, 2)
- ind += 4
- elif opcode == 3:
- prog[prog[ind + 1]] = 5
- ind += 2
- elif opcode == 4:
- print(getval(param1, prog, ind, 1))
- ind += 2
- elif opcode == 5:
- ind = getval(param2, prog, ind, 2) if getval(param1, prog, ind, 1) else (ind + 3)
- elif opcode == 6:
- ind = getval(param2, prog, ind, 2) if not getval(param1, prog, ind, 1) else (ind + 3)
- elif opcode == 7:
- prog[prog[ind + 3]] = 1 if getval(param1, prog, ind, 1) < getval(param2, prog, ind, 2) else 0
- ind += 4
- elif opcode == 8:
- prog[prog[ind + 3]] = 1 if getval(param1, prog, ind, 1) == getval(param2, prog, ind, 2) else 0
- ind += 4
- else:
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement