Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. ind = 0
  2.  
  3. def getval(param, program, index, jump):
  4. return prog[prog[index+jump]] if not param else prog[index+jump]
  5.  
  6. with open('inputs.txt') as f:
  7. prog = list(map(int, f.readline().split(',')))
  8.  
  9. while prog[ind] != 99:
  10. instruction = (str(prog[ind])).zfill(5)
  11. param3 = int(instruction[0])
  12. param2 = int(instruction[1])
  13. param1 = int(instruction[2])
  14. opcode = int(instruction[3:])
  15.  
  16. if opcode == 1:
  17. prog[prog[ind+3]] = getval(param1, prog, ind, 1) + getval(param2, prog, ind, 2)
  18. ind += 4
  19. elif opcode == 2:
  20. prog[prog[ind+3]] = getval(param1, prog, ind, 1) * getval(param2, prog, ind, 2)
  21. ind += 4
  22. elif opcode == 3:
  23. prog[prog[ind + 1]] = 5
  24. ind += 2
  25. elif opcode == 4:
  26. print(getval(param1, prog, ind, 1))
  27. ind += 2
  28. elif opcode == 5:
  29. ind = getval(param2, prog, ind, 2) if getval(param1, prog, ind, 1) else (ind + 3)
  30. elif opcode == 6:
  31. ind = getval(param2, prog, ind, 2) if not getval(param1, prog, ind, 1) else (ind + 3)
  32. elif opcode == 7:
  33. prog[prog[ind + 3]] = 1 if getval(param1, prog, ind, 1) < getval(param2, prog, ind, 2) else 0
  34. ind += 4
  35. elif opcode == 8:
  36. prog[prog[ind + 3]] = 1 if getval(param1, prog, ind, 1) == getval(param2, prog, ind, 2) else 0
  37. ind += 4
  38. else:
  39. break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement