Advent of Code 2016 is a complete year — all 25 days solved, both parts. The year casts you as a visitor to Easter Bunny HQ, battling locked rooms, encrypted messages, and a security maze. Recurring themes include the Assembunny virtual machine (Days 12, 23, 25), MD5-based password generation (Days 5, 14), and BFS pathfinding through constrained mazes (Days 13, 17, 24). Every solution has a passing test suite; Day 25’s tests are marked as uncertain due to its unique halting condition.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/cj81499/advent-of-code/llms.txt
Use this file to discover all available pages before exploring further.
Progress
| Day | Title | Part 1 | Part 2 | Tests |
|---|---|---|---|---|
| 01 | No Time for a Taxicab | ⭐ | ⭐ | ✅ |
| 02 | Bathroom Security | ⭐ | ⭐ | ✅ |
| 03 | Squares With Three Sides | ⭐ | ⭐ | ✅ |
| 04 | Security Through Obscurity | ⭐ | ⭐ | ✅ |
| 05 | How About a Nice Game of Chess? | ⭐ | ⭐ | ✅ |
| 06 | Signals and Noise | ⭐ | ⭐ | ✅ |
| 07 | Internet Protocol Version 7 | ⭐ | ⭐ | ✅ |
| 08 | Two-Factor Authentication | ⭐ | ⭐ | ✅ |
| 09 | Explosives in Cyberspace | ⭐ | ⭐ | ✅ |
| 10 | Balance Bots | ⭐ | ⭐ | ✅ |
| 11 | Radioisotope Thermoelectric Generators | ⭐ | ⭐ | ✅ |
| 12 | Leonardo’s Monorail | ⭐ | ⭐ | ✅ |
| 13 | A Maze of Twisty Little Cubicles | ⭐ | ⭐ | ✅ |
| 14 | One-Time Pad | ⭐ | ⭐ | ✅ |
| 15 | Timing is Everything | ⭐ | ⭐ | ✅ |
| 16 | Dragon Checksum | ⭐ | ⭐ | ✅ |
| 17 | Two Steps Forward | ⭐ | ⭐ | ✅ |
| 18 | Like a Rogue | ⭐ | ⭐ | ✅ |
| 19 | An Elephant Named Joseph | ⭐ | ⭐ | ✅ |
| 20 | Firewall Rules | ⭐ | ⭐ | ✅ |
| 21 | Scrambled Letters and Hash | ⭐ | ⭐ | ✅ |
| 22 | Grid Computing | ⭐ | ⭐ | ✅ |
| 23 | Safe Cracking | ⭐ | ⭐ | ✅ |
| 24 | Air Duct Spelunking | ⭐ | ⭐ | ✅ |
| 25 | Clock Signal | ⭐ | ⭐ | ❓ |
Notable Solutions
Day 12 — Leonardo’s Monorail (Assembunny VM)
The solution introduces theAssemBunnyComputer class, a register-based virtual machine used across Days 12, 23, and 25. It supports four instructions: cpy (copy), inc (increment), dec (decrement), and jnz (jump-if-not-zero). Registers are stored in a defaultdict(int). Day 23 extends the VM with a tgl (toggle) instruction, and Day 25 adds an out instruction for generating clock signals.
Day 5 — How About a Nice Game of Chess?
MD5 hashing with an incrementing counter to find password characters — the same pattern as Day 4 in 2015. Part 1 collects the 6th hex digit of each hash that starts with five zeroes. Part 2 uses the 6th digit as a position index and the 7th digit as the character, filling positions 0–7 in order and ignoring out-of-range or already-filled positions.Day 13 — A Maze of Twisty Little Cubicles
The maze is not stored as a grid — instead, whether coordinate(x, y) is a wall is determined on-the-fly by checking if x*x + 3*x + 2*x*y + y + y*y + puzzle_input has an odd number of set bits. BFS finds the shortest path to the target in Part 1. Part 2 counts all locations reachable within 50 steps using the same BFS capped by depth.
Puzzle inputs are personal and are not stored in this repository. Solutions fetch input at runtime using aocd (
aocd.data).