Saturday, February 26, 2011

Icy Projectile Challenge Results

The Icy Projectile Challenge programming competition is finished!

Here you can see the complete tournament results
http://queue.acm.org/challenge/2011/tournament/tournament.html

You can click on each dot on the tournament tree to launch a Java applet to watch that particular match play out.

I made it to the "Elite Eight" ;-)

One advanced technique that I wish I had come up with was the ability to throw a snowball at a competitor from a crouched position.  Repeatedly doing that allowed people to keep their opponents immobilized (potentially forever, if the opponent was pinned down and couldn't be pushed away by the snowball impact force and the thrower wasn't immobilized himself.)

For posterity's sake, I've decided to share the development of my player here: https://github.com/jratke/ICPC
The majority of my player development took place in the file python_example/player.py  

I started out basing the code on the python hunter.py and gradually adding capabilities.  My final basic strategy, as you can probably tell from the matches, was to have three players go out and throw snowballs at the other team, while one player would plant snowmen at four points designed to have my snowman domain covering much of the field.  The "planter" player also tries to convert all of the other team's snowmen to my team if he sees any as he goes on his way to the next point.  Once he successfully completes the fourth snowman, he can keep going around the points to try and convert more snowmen, or (if I haven't seen any snowmen of the opposite team at all) he can join in and throw snowballs like the other three.

Congratulations to Kamran for winning and congratulations to the other finalists.  And thanks again to the organizers.

Tuesday, February 8, 2011

Icy Projectile Challenge

Queue magazine, the magazine of The Association for Computing Machinery (ACM), is holding a programming competition called The Icy Projectile Challenge.  The competition is based on the Challenge problem from ACM's 2010 International Collegiate Programming Competition. The contest is to write a program to control a team of virtual children in a snowball fight.  One nice thing about it is that you can write your program in C++, C#, Java, or Python.

I've entered the contest, and I'm writing my program in Python.  So far it is over 1000 lines.

You can see the preliminary standings here.

I wish I would have entered sooner!  I hope there is enough time for me to improve my player even more. I'm looking forward to the final tournament!!  Their web site says that the challenge is run by David Sturgill at the University of North Carolina at Greensboro with help from Matt Slaybaugh at ACM.  So thanks to them for putting this on.  It's a great idea, great fun, and I hope they do something like it next year as well!