Advent of Code 2016 solutions https://adventofcode.com/2016/
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

12.py 743B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/python3
  2. with open('12.txt', 'r') as file:
  3. instr = list(map(str.split, map(str.strip, file.readlines())))
  4. def value(x):
  5. try:
  6. return int(x)
  7. except ValueError:
  8. return registers[x]
  9. def cpy(args): registers[args[1]] = value(args[0])
  10. def inc(args): registers[args[0]] += 1
  11. def dec(args): registers[args[0]] -= 1
  12. def jnz(args): global pc; pc += (0 if value(args[0]) == 0 else value(args[1]) - 1)
  13. def run():
  14. global pc
  15. while pc < len(instr):
  16. globals()[instr[pc][0]](instr[pc][1:])
  17. pc += 1
  18. registers = {'a': 0, 'b': 0, 'c': 0, 'd': 0}
  19. pc = 0
  20. run()
  21. print("Stage 1: %s" % registers['a'])
  22. registers = {'a': 0, 'b': 0, 'c': 1, 'd': 0}
  23. pc = 0
  24. run()
  25. print("Stage 2: %s" % registers['a'])