diff --git a/8/8p1.py b/8/8p1.py index a0de856..aea7783 100755 --- a/8/8p1.py +++ b/8/8p1.py @@ -3,20 +3,18 @@ inputs = ["example.txt", "input.txt"] -#inputs = ["example.txt"] -#inputs = ["input.txt"] -registers = {} -def get_value(register): +def get_value(registers, register): if register not in registers: registers[register] = 0 - return int(registers[register]) -def compare(operation, register, b): + return registers[register] + + +def compare(registers, operation, register, b): result = False - - a = get_value(register) + a = get_value(registers, register) b = int(b) if operation == '>': @@ -42,25 +40,26 @@ def compare(operation, register, b): def solve(filename): + registers = {} + with open(filename, "r") as fp: for line in fp: values = line.split() - if compare(values[5], values[4], values[6]): + if compare(registers, values[5], values[4], values[6]): if values[1] == 'inc': - registers[values[0]] = get_value(values[0]) + int(values[2]) + registers[values[0]] = (get_value(registers, values[0]) + + int(values[2])) elif values[1] == 'dec': - registers[values[0]] = get_value(values[0]) - int(values[2]) + registers[values[0]] = (get_value(registers, values[0]) + - int(values[2])) - biggest = 0 + biggest = 0 for i in registers: - print(i, registers[i]) if int(registers[i]) > biggest: biggest = int(registers[i]) return biggest - for puzzle in inputs: print(puzzle, solve(puzzle)) - registers.clear() diff --git a/8/8p2.py b/8/8p2.py index 175b85e..ed44d23 100755 --- a/8/8p2.py +++ b/8/8p2.py @@ -3,17 +3,18 @@ inputs = ["example.txt", "input.txt"] -registers = {} -def get_value(register): + +def get_value(registers, register): if register not in registers: registers[register] = 0 + return int(registers[register]) -def compare(operation, register, b): - result = False - a = get_value(register) +def compare(registers, operation, register, b): + result = False + a = get_value(registers, register) b = int(b) if operation == '>': @@ -39,17 +40,20 @@ def compare(operation, register, b): def solve(filename): + registers = {} big = 0 with open(filename, "r") as fp: for line in fp: values = line.split() - if compare(values[5], values[4], values[6]): + if compare(registers, values[5], values[4], values[6]): if values[1] == 'inc': - registers[values[0]] = get_value(values[0]) + int(values[2]) + registers[values[0]] = (get_value(registers, values[0]) + + int(values[2])) if registers[values[0]] > big: big = registers[values[0]] elif values[1] == 'dec': - registers[values[0]] = get_value(values[0]) - int(values[2]) + registers[values[0]] = (get_value(registers, values[0]) + - int(values[2])) if registers[values[0]] > big: big = registers[values[0]] @@ -58,4 +62,3 @@ def solve(filename): for puzzle in inputs: print(puzzle, solve(puzzle)) - registers.clear()