Time to get jolly on your naughty asses!

A Christmas Advent Calendar Coding Challenge designed by

We all love Christmas. It’s a time for joy and celebration. But in the year 3000, things are very different. Around that time, on each Christmas eve, a dangerous robot called SantaBot© rides the sky on its robot-reindeer sleigh to punish the naughty with extreme prejudice. 

However, it was not always like this…

It all started around the year 2800, when a profit-hungry toy company designed the SantaBot© in order to crush their competitors.

This robotic replica of Santa Claus would judge whether people were naughty or nice and sort out presents accordingly.

Unfortunately, due to a programming error, its standards were set way too high and the SantaBot© invariably judges everyone naughty, thus attempting to kill everyone on sight.

In the year 3000, SantaBot© is around 200 years old, so no one really understands its outdated programming language any more in order to fix it. 

A team of genius scientists were able to send its code back in time to the year 2800, so its original creators could fix it and save Christmas. 

But there was never a reply, so they decided instead to send the code back in time to somewhen around the year 2000. 

What do you say? Will you use your coding skills to save their Christmas?

 

The code we received from the future asking us to fix SantaBot© is completely unrecognizable. But with time, we have been able to reverse engineer some of their requirements! Our team has so far deciphered one of the four main routines of SantaBot©, and will be able to decipher one more main routine every next week. With your help, we can still reprogram the code in time and send it back before Christmas eve!

You are free to decide how to implement the main routines of SantaBot©. However, the citizens of the year 3000 would greatly appreciate it if they would receive a cleaner code free of bugs that they can maintain by themselves afterwards. Therefore, we definitely encourage you to:

  • Use the programming language you feel the most comfortable with.
  • Apply the principles of Clean Code as much as possible.
  • Apply the KISS, DRY and SLAP principles as much as possible.
  • Apply the Coherence principle, keeping the code organized in files and packages accordingly.
  • Provide tests for each piece of logic that you write.


If you use an object oriented programming language, apply the SOLID principles as well.

The four patented main routines of SantaBot© are the following:
We will provide you with another SantaBot© main routine every week after this one.
When the four of them are completed we will send them to the future.

Let’s save the Christmas eve of the year 3000!​

Credits: El & the team at