Coding Tournament (Lasse Koskela, Markus Hjort)
The coding tournament is a fun-oriented social even where teams of brave delegates are presented with a
task involving a simple, yet challenging multiplayer game. The teams will develop a game bot that
interfaces with a game server provided by the organizers. The bots can be implemented using either
Java or Ruby as the organizers will provide client libraries for those two programming languages.
While the ultimate goal of the tournament is to have fun, participants are encouraged to use
this occasion as a chance to experiment with engineering practices such as test-driven
development and pair programming. In the grand finale of the the event, the actual tournament
is carried out by playing the teams' bots against each other on a projector while the teams
and their supporters cheer ferociously.
Participation requires registering beforehand. Each team must consist of at least 2 people and the
team must have a laptop with a network connection. The best team(s) will be awarded with fame,
street credibility and possibly some other small prizes.
The game and coding challenge we have developed for the tournament is based
on the card game known as Indian Poker.
The rules of the game are simple. A game of Indian Poker start by the dealer
dealing a single card to each player. At the same time, each player raises the card
to their forehead, but not so they can see it. The card is placed face-out on their forehead
so that each player can see everybody else's card but their own. The first two players left from
the dealer are forced to place "blind" bets while the rest can decide whether to fold (without paying)
or to pay the bet based on how strong they imagine their own card will fare against what they're seeing
on the opponents' foreheads. Players can also decide to raise which means everyone else will have to either
pay the raise, re-raise, or fold out from the game. After a maximum of three raises, whoever has the
highest card collects the pot. In the case of several cards with equal rank, the pot is split even.
The teams' bots will be communicating with the server over a network connection.
The game logic is driven and controlled by the server and game activities are visualized
on the projector through the server's user interface, including an audio narrative by a
quasi-intelligent computer commentator. In the name of entertainment, the server
introduces deliberate delays for players' actions in an attempt to simulate "think time".
Inspired by The First International RoShamBo Programming Competition we have organized similar
tournaments internally at Reaktor Innovations. It worked very well with people cheering
ferociously while the bots played against each other, eventually leading to the Coding
Tournament session described by this submission getting organized as an activity at the XP2006 conference.
About the speaker
Software architect at Reaktor Innovations, Markus has been in industry
over seven years with experience from various technologies including
J2EE, Microsoft, and Symbian platforms. He has always actively
participated in process and methodology improvement. A certified Scrum
Master and a member of Agile Alliance with extensive experience on
agile methods, Markus kick-started the local Coding Dojo events in
2005.
Methodology specialist at Reaktor Innovations, Lasse entered the IT
industry 7 years ago and has since held roles varying from development
to project management and training to consulting, dipping his toes to
sales every once in a while. He started promoting agile methods in
Finland in 2002, ramped up the local Agile Seminars in 2005, and is
finally in the process of putting in the finishing touches for his
book on test-driven development for Manning Publications.
|