Zaphod for the win21 Nov 2005
Two weeks ago, my friend Jarrett and I participated in the "A.I. Battle" put on by the University of Waterloo's IEEE group and sponsored by Microsoft. Most of the programming competitions hosted by the university are usually algorithm-based and solo, so the change of pace of the 'battle' was very well received and ended up attracting a ton of participants.
The competition consisted of a set of standardized game logic and a basic player class that each team had to extend in order to build their player. The goal of the game was to create a contiguous path from on side of the board to the other (top to bottom or left to right), while the other player tried to do the same. A pattern of squares on the board is already allocated to each player such that it advantageous for the first player to attempt to create the path vertically and the second player to attempt to create the path horizontally [IEEE contest page].
Our bot "Zaphod" was basic in the sense that it did not try to pick blocks with the intent to block the other player. Instead, we worked on creating a dynamic path-finding algorithm that would judge the advantage of picking each square that it possibly could and then choose the one that gets us closer to our goal. This made it relatively resiliant to attacks as it tended to walk around most blocking attempts [more about our development process].
Yesterday, the IEEE group announced the winners and our bot Zaphod placed fifth out of 44 entires. Only 9 points behind the winning bot. That makes Jarrett and I the proud recipients of one of the five prize packages (though we just get which ever package is left, ebay here I come) and our names forwarded off to the Microsoft recruiter for possible co-op terms. Hopefully they won't be too turned off by our poorly documented code. A big thanks to the guys in the IEEE group for putting on the competition, I'd really like to see this become a common thing.