Team Radical Too's ICFP 2002 Programming Contest Entry


Dan Joe Tom
Team Radical Too consists of Daniel Adkins, Josef Rokicki, and Tomas Rokicki (rokicki -at- cs.stanford.edu).

How did your bot do? Check out the set of animations I built from the judge's game logs!

We used raw C. Really painful, but we got the job done.

See my bot play itself! (117K; requires IE5+ or a Gecko-based browser like Mozilla. If it does or does not work for you, let me know at rokicki -at- cs.stanford.edu. Thanks!) You can animate your own games; this perl script along with this JavaScript file will read the output of the Judge's simulator and turn it into an animation for you automatically! The perl script will also read the RAVT adump format. Check it out!

Our submission is available here (185k). I just ran strip over the executable; no other change. If you beat up on it with your robot please let us know. If you try it out, remember that the -m option sets the speed, so -m 10 means 10 moves a second. This option must occur before the hostname and portnumber arguments. If you don't give it this option, it *will* use the full second per move (by design).

The main interesting features of our robot include:

One thing we are especially proud of is how our bot handles large, complex boards (such as this one (218k)) with aplomb. Try your robot on this one!

Our methodology? We used CVS on a remote server, and AIM for all communication (we did not see each other face to face even once during the contest despite the fact that we all live in the Bay area). Initially, Joe built test cases, including a Perl script to generate huge maps; Tom wrote a server for debugging and infrastructure, and Dan built the client infrastructure. Then, we wrote a completely oblivious robot that just tried to pick up and then deliver packages, with no strategy or tactics. Finally, over the course of the final two days, we hacked in all the strategy and tactics you see listed above. At almost every point during development, our robot was playing tons of very large games on very large boards in the background.

What's that big picture up there? It's an example of a map with a lot of points equidistant from any given point. As a matter of fact, it's possible to construct a map like the above that's smaller than 1000x1000 that has more than 128,000 points the same distance away from a given point.