Edward T. Tonai likes to code. A lot. That's pretty much all you need to know right now.
The (February 2010) Google AI Challenge was a programming contest held from 2/4/2010 - 2/26/2010.
I finished 28th out of 708 entrants. I wrote it in C#, because my most likely next job will have me working at Microsoft. Plus I wanted to try to win, so I didn't want to experiment with a language I've never studied (Python) or a language I've never been particularly good with (Lisp). I toyed with doing it in C++, but I'm more comfortable with C# right now.
Download the code
The main AI portion of the code is in the AI14negamaxABID2 class.
Excuses: This code isn't as good as I'd like it to be. The contest had a deadline, and I was fiddling with the algorithms up to the day it ended (and didn't get everything in). So I have some ugly code that was kept because it worked (including the initial code supplied by GAIC).
The Game
The challenge was to create an AI that would play the Tron Lightcycles game, also known as Snakes or Worms or Snafu.
I finished tied for 27th out of 708 on the Google AI Challenge. Since I lost to the other 27th place entrant, I figure that should make me 28th out of 708, so that's my story. I'm shown as tied for 27th in the full results page, and as 28th on my individual page.
Google AI Challenge Home: http://csclub.uwaterloo.ca/contest/index.php
Google AI Challenge Full Results: http://csclub.uwaterloo.ca/contest/rankings.php
Google AI Challenge My Results: http://csclub.uwaterloo.ca/contest/profile.php?user_id=1047
It's been a while since I've updated this. I worked on my Pentago AI off and on for a while, then worked on it regularly in January. But I stopped all work on that go work on the Google AI Challenge (http://csclub.uwaterloo.ca/contest/).
It's a lot of fun. Right now, I'm ranked somewhere in the top 10 (rankings fluctuate a bit), listed as "EdwardTonai" so there's no confusion which is *MY* entry.
TODO:
Describe Mistletoe.
Talk about the AI involved
Talk about lookaheads and alpha-beta pruning
Talk about game trees
Talk about parameterization
Talk about Chinook
Talk about Arthur Samuel
Talk about Pentago
Perhaps mention Pentagod
Then erase this entry.
For my next problem, I selected the 151st least solved problem (at the time) on Project Euler, 187 (Semiprimes). In 187, we are searching for how many integers under 100 million with precisely two, not necessarily distinct, prime factors.
I know there are a bunch of problems in Project Euler that require generating primes, so the first thing I did was to come up with a C# implementation of the Sieve of Eratosthenes. I've coded the sieve before, but in lisp.