Bert Sarens · Dec 1, 2017

Adventofcode.Com 2017 is live :)

Hello everyone,


From now till the 25th of december each day 2 programming problems to sharpen your programming skills.


Theme this year:

The night before Christmas, one of Santa's Elves calls you in a panic. "The printer's broken! We can't print the Naughty or Nice List!" By the time you make it to sub-basement 17, there are only a few minutes until midnight. "We have a big problem," she says; "there must be almost fifty bugs in this system, but nothing else can print The List. Stand in this square, quick! There's no time to explain; if you can convince them to pay you in stars, you'll be able to--" She pulls a lever and the world goes blurry.

When your eyes can focus again, everything seems a lot more pixelated than before. She must have sent you inside the computer! You check the system clock: 25 milliseconds until midnight. With that much time, you should be able to collect all fifty stars by December 25th.

Collect stars by solving puzzles. Two puzzles will be made available on each day millisecond in the advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!

You're standing in a room with "digitization quarantine" written in LEDs along one wall. The only door is locked, but it includes a small interface. "Restricted Area - Strictly No Digitized Users Allowed."

It goes on to explain that you may only leave by solving a captcha to prove you're not a human. Apparently, you only get one millisecond to solve the captcha: too fast for a normal human, but it feels like hours to you.

0 1,122
Discussion (68)4
Log in or sign up to continue

Day 18 was quite interesting, with two parallel jobs and communication between.

How do you realize this communication? Maybe the simplest way was to use Global. But I used $system.Event here.

I did not bother doing the jobs parallel. Turn-based did come up with an answer reasonably fast.

But I'm sure it would be interesting to sort out how to execute them in parallel. In any case I'm sure I'll be playing around with $system.Event (didn't know that one)...

Well I did the same as Ivo, just kept running the 2 jobs in the same loop.
I think you can trade info with globals as well.

Well done everyone, looks like you are all doing really well. I missed a few days and struggling to find the time to catch up now. Maybe boxing day :)

I just did mine state based, while one needed to wait, just flipped the state to the other

Today I really regret not getting up early...

started at 7:05 and finished first part in 12min, second part in 18min -> would get me a place in top 100...


That means you probably used the best method to solve this problem. That method is not writing bugs. It helps a lot.

Wow. Day 23.

Hardest one for me so far. By the time I found out what the inner loops did I was about to give up. Such a simple optimisation as well.

I made the leaderboard today!!!!

Am insanely happy although it was only place 98: 

24   00:18:19   118      0   00:20:52    98      3


I discovered that I'm no good at multi-tasking (surprise!)... Babysitting and coding is not an ideal combination

It is done. I will finally be able to sleep a bit more again.
Thank you all for making it a great race. I had lots of fun.

Yeah, question is, what will we do now?

In any case, thanks to everyone for sharing your code! It has been fun an educational!

I will probably finish the one from 2016. have 4 days to do that I never finished. After I will be able to relax and for next year I am going to prepare with macros and code snippets.

Oh and synacor, i will do synacor as well.

Hey, guys! Congratulations! I think we are ready to announce a winner of our home COS championship ;)

Guys, please share your GitHub or any other public repos with COS in UDL inside?