Hey folks, it’s that time of the year again for Advent of Code 2025!
If you’re unaware, Advent of Code is a fun holiday themed coding exercise. Whether you’re new to programming and want a fun way to get in some good practice, looking to bone up your chops on a new language, or want to do some code golf to complete the challenges in as few lines as possible, the sky’s the limit here.
One of the cool features of AoC is that it supports private leaderboards! You can join along with your fellow TSR members by entering this code on the Leaderboards page on the Advent of Code site: 2312496-a7bfd44e
Feel free to reply here with your questions or comments! While AoC is generally designed to be completed by one person individually, we’re all learning here, so if you’re stuck on a particular question and want to check your approach, this is a great place to do that.
One major change this year (that should help with the concern of falling behind!) is that rather than 25 coding challenges this year, there’s only 12! I know I’ve never completed a full round myself because things inevitably get crazy as we inch closer towards the end of the year, so I’m hoping this gives me the ability to keep up better!
From the examples given, I didn’t consider that some rotations could wrap around multiple times. They can, which is important for part 2.
I only realized when my initital answer was rejected. I decided to make use of Ada’s range types. When I made my dial an Integer range 0 .. 99, my program quickly crashed with a runtime constraint violation. By handling the wrap-around both more resiliently and more elegantly, I then got the correct answer.