Advent of Code 2025 is here!

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.

1 Like

That is an awesome idea. Thanks, @belthesar !

I’m already lagging behind on day 1, but I’ll do my best to carve out at least a little bit of time for some coding fun.

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!

…and so do the challenges! :sweat_smile:

Here is the repository with my solutions, written in Ada!

Learnings from Day 1 - Secret Entrance

  1. Check your input data
  2. Use your language to its strengths

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.