Implement day 5 part 2

This commit is contained in:
Gabriel Augendre 2020-03-04 23:53:03 +01:00
parent 84d0a06e9a
commit 476fb7e0ee
No known key found for this signature in database
GPG key ID: 1E693F4CE4AEE7B4
3 changed files with 33 additions and 2 deletions

View file

@ -3,7 +3,10 @@ NUMBER_OF_PARAMS_MAP = {
2: 3,
3: 1,
4: 1,
99: 0,
5: 2,
6: 2,
7: 3,
8: 3,
}
LAST_IS_RESULT_MAP = {
@ -11,6 +14,10 @@ LAST_IS_RESULT_MAP = {
2: True,
3: True,
4: False,
5: False,
6: False,
7: True,
8: True,
}
@ -62,10 +69,32 @@ def compute(lst):
program[params[2]] = params[0] * params[1]
elif code == 3:
# Input
program[params[0]] = int(input(f"Input for instruction {pointer}"))
program[params[0]] = int(input(f"Input for instruction {pointer}\n> "))
elif code == 4:
# Output
print(params[0])
elif code == 5:
# Jump if true
if params[0] != 0:
pointer = params[1]
pointer_moved = True
elif code == 6:
# Jump if false
if params[0] == 0:
pointer = params[1]
pointer_moved = True
elif code == 7:
# Less than
if params[0] < params[1]:
program[params[2]] = 1
else:
program[params[2]] = 0
elif code == 8:
# Equals
if params[0] == params[1]:
program[params[2]] = 1
else:
program[params[2]] = 0
else:
raise ValueError(f"Something bad happened, code={code}")

1
2019/inputs/day05-ex1 Normal file
View file

@ -0,0 +1 @@
3,9,8,9,10,9,4,9,99,-1,8

1
2019/inputs/day05-ex2 Normal file
View file

@ -0,0 +1 @@
3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99