1
0
Fork 0
advent2017/8/8p1.py

66 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python
# -*- coding: utf-8 -*-
inputs = ["example.txt", "input.txt"]
def get_value(registers, register):
if register not in registers:
registers[register] = 0
return registers[register]
def compare(registers, operation, register, b):
result = False
a = get_value(registers, register)
b = int(b)
if operation == '>':
if a > b:
result = True
elif operation == '<':
if a < b:
result = True
elif operation == '>=':
if a >= b:
result = True
elif operation == '<=':
if a <= b:
result = True
elif operation == '!=':
if a != b:
result = True
elif operation == '==':
if a == b:
result = True
return result
def solve(filename):
registers = {}
with open(filename, "r") as fp:
for line in fp:
values = line.split()
if compare(registers, values[5], values[4], values[6]):
if values[1] == 'inc':
registers[values[0]] = (get_value(registers, values[0])
+ int(values[2]))
elif values[1] == 'dec':
registers[values[0]] = (get_value(registers, values[0])
- int(values[2]))
biggest = 0
for i in registers:
if int(registers[i]) > biggest:
biggest = int(registers[i])
return biggest
for puzzle in inputs:
print(puzzle, solve(puzzle))