123456789101112131415161718192021222324252627282930 |
- #!/usr/bin/python3
-
- with open('data/12.txt', 'r') as file:
- instr = list(map(str.split, map(str.strip, file.readlines())))
-
- def value(x):
- try:
- return int(x)
- except ValueError:
- return registers[x]
-
- def cpy(args): registers[args[1]] = value(args[0])
- def inc(args): registers[args[0]] += 1
- def dec(args): registers[args[0]] -= 1
- def jnz(args): registers['pc'] += 0 if value(args[0]) == 0 else value(args[1]) - 1
-
- def run():
- while registers['pc'] < len(instr):
- globals()[instr[registers['pc']][0]](instr[registers['pc']][1:])
- registers['pc'] += 1
-
- registers = {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'pc': 0}
- run()
-
- print("Stage 1: %s" % registers['a'])
-
- registers = {'a': 0, 'b': 0, 'c': 1, 'd': 0, 'pc': 0}
- run()
-
- print("Stage 2: %s" % registers['a'])
|