During induction week this year I put together a lab activity based around Robocode (https://robocode.sourceforge.io/). The students were introduced to it on Wednesday afternoon and had lab slots during Thursday to further refine their creations.
Today we got to find out how they all did in an epic showdown.
Robocode was developed in around 2000 by a guy who was working at IBM at the time. Originally Java only, it is a fun way to get in to programming by presenting you with a Robot API that you can use to write a ‘brain’ to control a battle tank. You can then put it in a virtual square arena along with other people’s robotanks and see who is left standing.
Somewhere along the way somebody added the ability to write Robocode controllers in .Net languages as well and as our first year programming teaching is done using C# this was a good fit.
Despite the majority of our newbies having little programming experience (they came here to learn after all), they threw themselves in to it.
We had 14 contenders to toss in to the ring and see who would claim victory. When I orignally planned how I was going to run the Showdown, there were only 9 robots to compete, but because I am a kind hearted soul I gave one last chance to get their robots entered. The reason that I mention this is that my plan (that I mentally committed to) was to try them 2 at a time until all the robots had battled each other. Additionally, to smooth out random chance each pair was run 3 times.
It quickly became apparent that this was going to take a loooooooong time. Someone mentioned that it would be better if there was some background music to set the mood, but unfortunately the PC sound was not working properly which rendered it a moot (mute haha) point. Or did it? I am not DJ Parker for nothing and I Macgyvered up laying the podium mic on its side next to the speaker output of my phone and laid on some atmospheric themes courtesy of Hans Zimmer.
Thus armed with suitable tunes and the judicious use of the Robocode fast forward we managed to sneak in with a result just before the next class was due to arrive.
And what a result it was. But first a brief aside.
During the actual showdown there were 2 submitted contenders that for some reason were not appearing in the list so unfortunately had to be skipped. In the less time pressured comfort of my own home I discovered that they were using the DPInductionRobot as their namespace (using my initials rather than theirs) and so it wasn’t showing up. I have since tested them against all of the other robots and I am pleased to report that it did not change the outcome for the podium finish (though one of them did quite well finishing in the top half of the table).
And back to the results!
In third place with 5805 points was Cole Bennett. Second place with 6077 points was Matthew Smith. And the champion was Wiktor Szyling with 6086 points. So a pretty close finish.
If you look in the last column you can see the points conceded by each of the robots during their battle, as opposed to the points won which is on the bottom row. One interesting observation about the results is that the top three points scoring robots were not also the top three lowest point conceders. This appears to suggest that the robots that got stuck in and risked trading at least some blows were the ones that gained the most points.
Finally, we need to give a shout out to Jamie King, Steven Henderson, John Franklin whose robots were the top three placed (first, second, and third respectively) when I coralled all the robots in to one manic melee. Sadly I didn’t have time at the end to properly congratulate them as I was rushing out the room but a three cheers for them now. Also it is interesting that none of the top three one on one champs was on the podium of the Battle Royale.
So to conclude, a huge thanks to everyone who took part, whether you had a horse in the race or not. If you found the exercise tricky then don’t worry. You haven’t come to the wrong place. We are well equipped to help you learn everything you need to become a programming wizard.
I plan on running this as an ongoing extra-curricular activity through out the year, opening it up to all our students. So watch this space!