13 "[['jio', 'a, +18'],\n",
52 " ['jio', 'a, +8'],\n",
54 " ['jie', 'a, +4'],\n",
62 "execution_count": 13,
64 "output_type": "execute_result"
68 "program = [i.strip().split(' ', 1) for i in open('advent23.txt').readlines()]\n",
80 "registers = {'a': 0, 'b': 0, 'pc': 0}"
85 "execution_count": 24,
92 " registers[args] >>= 1\n",
93 " registers['pc'] += 1\n",
96 " registers[args] *= 3\n",
97 " registers['pc'] += 1\n",
100 " registers[args] += 1\n",
101 " registers['pc'] += 1\n",
104 " registers['pc'] += int(args)\n",
107 " r, o = args.split(', ')\n",
108 " if registers[r] % 2 == 0:\n",
109 " registers['pc'] += int(o)\n",
111 " registers['pc'] += 1\n",
114 " r, o = args.split(', ')\n",
115 " if registers[r] == 1:\n",
116 " registers['pc'] += int(o)\n",
118 " registers['pc'] += 1\n"
123 "execution_count": 25,
129 "instructions = {'hlf': hlf, 'tpl': tpl, 'inc': inc, 'jmp': jmp, 'jie': jie, 'jio': jio}"
134 "execution_count": 26,
140 "while registers['pc'] < len(program):\n",
141 " instructions[program[registers['pc']][0]](program[registers['pc']][1])\n",
147 "execution_count": 27,
155 "{'a': 1, 'b': 307, 'pc': 47}"
158 "execution_count": 27,
160 "output_type": "execute_result"
168 "cell_type": "markdown",
176 "execution_count": 28,
184 "{'a': 1, 'b': 160, 'pc': 47}"
187 "execution_count": 28,
189 "output_type": "execute_result"
193 "registers = {'a': 1, 'b': 0, 'pc': 0}\n",
194 "while registers['pc'] < len(program):\n",
195 " instructions[program[registers['pc']][0]](program[registers['pc']][1])\n",
201 "execution_count": null,
211 "display_name": "Python 3",
212 "language": "python",
220 "file_extension": ".py",
221 "mimetype": "text/x-python",
223 "nbconvert_exporter": "python",
224 "pygments_lexer": "ipython3",