'Colonel Panic' won this year’s Entelect Challenge competition, the finals of which were played out at rAge Expo on 7 October.
Ryan Louw, a software developer by profession, was announced as the winner of this year’s Entelect Challenge competition, the finals of which were played out at rAge Expo on 7 October.
Louw’s bot, ‘Colonel Panic’, built in C#, competed in all four rounds of this year’s Challenge and stormed to first place, winning him R70,000.
Based on the hugely popular ‘Battleships’ classic game, the 2017 Entelect Challenge brought together novice coders and experienced professionals as they competed against each other by coding an artificial intelligence (AI) player, or bot, to challenge other bots.
Coding and AI hobbyists and enthusiasts have spent the last six months building their bots, with the goal of winning their share of the R200,000 prize bounty.
The winning strategy
Louw’s bot went into the finals with strong stats:
• 196 wins out of 263 matches played;
• 66,220 points won up to the final match; and
• 5 wins out of 7 clan matches played
“He had one of the strongest player strategies in the competition this year,” says Tomislav Ravic, Team Lead for the Entelect Challenge.
“Competing successfully in the Challenge is not about the best or cleanest code,” says Ravic. “It’s all about the player strategies. Your bot may be really simple in design but its strategy could be highly effective. That’s what makes the Entelect Challenge so appealing to coders of all levels.”
Second place went to Dion van Huyssteen, who was awarded R35,000 in prize bounty. Van Huyssteen’s bot, ‘Heat Seeking bot’, built in C++, actually went into the finals with stronger stats than Louw’s bot: 228 wins out of 256 matches and a total of 73,310 points. But, on the day, Louw’s strategy was stronger.
A word from the winners
This was the third time Louw competed in the Entelect Challenge. “My first Challenge was Pacman, then Space Invaders and now Battleships. For me, the best part of the Challenge is to get into the head of your opponent. My strategy this year was helped by the tournament stages; so first, I built a basic shooting strategy, then a weapons strategy, then, in the third round, I had to work out when to use the shield.
“I figured out that I needed to place my bots statically in strategic locations and then I needed to start shooting from the outside-in, not the inside-out, as one would normally think to do.
“I didn’t do very well in the first two rounds, so I wasn’t even expecting to get into the finals, but was really surprised to win,” says Louw.
Second place winner, Van Huyssteen, describes his bot strategy: “I started with a standard heat-seeking strategy, but as the game went on, I started applying modifiers to that. The initial idea was to modify the heat maps with a bunch of variables, which I could iterate through and automate, but I ran out of time. So, I ended up with something that cleared the edges and then worked its way inwards after that.”
Top awards all round
Third place went to Anesu Jairosi, who says this was the third time he has entered the Challenge. “I hate losing, but I love coding so much, so I’ve entered three times now, since Pacman. This year, my strategy was based on probability, specifically where competitors will place their ships. But then I adapted this as I realised a human player will not place their ship in the middle, so I started aiming around the edges.”
Fourth place winner, Jaco Mostert, said: “I’ve enjoyed every Challenge I’ve entered; it’s very entertaining just competing in the Challenge and having the chance to write the code. Personally, I don’t get a chance to do any AI in my job but it’s something I am interested in, so the Challenge allows me the opportunity to play with AI.
“In the second battle, I focused on the side of the map, and gauged the performance and found my bot did a lot better. For the final battle, I scaled it down a bit to focus on the inside a little more but still with a good focus on the outside.”
Sixth place went to Wynand Wolmarans, who won The Battle of Tortuga mini challenge. “I quickly realised that a great algorithm alone will not be enough to win the Challenge this year. I spent a lot of time tweaking and adjusting my bot but the most difficult part was choosing and sticking with a strategy because it could blow up in my face at any point. The secret to success is starting with a basic strategy, testing your bot against it and then letting your imagination take over.”
The final rankings in the 2017 competition were as follows:
1st Ryan Louw R70,000
2nd Dion van Huyssteen R35,000
3rd Anesu Jairosi R25,000
4th Jaco Mostert R25,000
5th Willie Theron R10,000
6th Wynand Wolmarans R10,000
7th Andre Nel R10,000
8th Mark-Anthony Fouche R10,000
Not everyone has to be a coding wizard
This year, the competition was structured differently to allow relatively low-level coders the opportunity to enter. The team introduced four tournament battles, each one increasing the level of complexity.
“The staggered strategy component that we introduced to the Challenge this year has been well received by the players, as it gives them a chance to refine and test their bots before entering the playoffs,” said Ravic. The result was an increase of more than double the number of participants than last year.
“This year, the hackathons worked really well; people were not only recruiting and challenging others, but also helping others set up their bots. Thanks to these hackathons, participants were able to collaborate and compete on a whole new level. We’re looking forward to taking some of these concepts further next year,” concluded Ravic.