Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2577 posts at DZone. You can read more from them at their website. View Full User Profile

Coder's Game: The Queue ICPC Challenge Problem

  • submit to reddit
The online battle for coding supremacy is ready to begin. The 2010 Queue ICPC Challenge, which begins this week, is a programming competition based on the ACM-ICPC (International Collegiate Programming Competition) Challenge problem.  This challenge, however, is open to anyone - not just college students.  Programmers compete in a simple game called Capture.  Although the competition has no prizes, the Queue website says, "the winner will receive bragging rights."  Game on!

                                                                                 3D Game Field

The game of Capture is played on a field were each player controls a sled and two bumpers.  The 800 x 800 playing field is filled with 112 pucks.  The object of the game is use your sled to draw a closed loop around groups of pucks to make them your own color.  At the end of the 90 second match, the player with the most pucks wins.  Sounds easy?  Not so fast.

The sled is controlled by a player program written in Java, C++, or C#.  The player interacts with the game by reading information (in plain text) about the game world from standard input.  It then chooses its next move and  writes it to standard output.  Take a look at the full description of the execution environment for more information about player input/output formats and other things that players can do.  Entrants can check out the sample players to get a head start on writing their own player and interacting with the game.

The game engine is implemented in Java and the game binary includes a .jar file to run the games.  The engine supports several command-line options for running games with different players and different output behavior.  There are more usage instructions available for running players in different languages.  The instructions also tell you how to play and record a game.  An alternate 3D game visualization is another option that you can implement.

The deadline to enter is February 7th.  Preliminary matches are starting now to let developers fine-tune their players.  To submit a player before the coding phase ends, sign up here for free.  Queue says they are looking at supporting additional programming languages for future challenges.


Martin Ellison replied on Wed, 2010/01/20 - 11:09pm

Three problems so far

1. The JOGL thing seems not to be finished. There is no binary download and I cannot build the source. Fortunately, this is not required for the competition; it is just a look-nice thing.

2. as far as I can tell it will only link in the first .cpp's .o; if you have more than one .cpp you get linker errors.

3. There is no way of contacting the organisers; so I cannot get any feedback on these issues.

Roy van replied on Mon, 2010/01/25 - 9:42am

I am competing, but the biggest problem I have with this tournament is the elimination-style.

The fact that they use single elimination is such a shame, it would be much better to use round-robin for this! If they really want to know which bot is the best, they should run it round-robin. That would just be fair. The chance you get knocked out by somebody who just happens to beat your algorithm is too big with this randomish game.

I'm doing pretty well in the preliminaries (currently second, almost first now) but I'll probably be ejected from the finals pretty soon, just because it can and will happen, is my prediction.

I'd love to see a round-robin after the finals to see which bot was actually the best.

Martin Ellison replied on Sat, 2010/01/30 - 10:35am

Roy: The website does say 'double elimination', whatever that is. But I would have thought they could do a round-robin; it's not like they are under any time pressure. If it takes several days to compute the winner I don't suppose anyone would mind. There only seem to be about 50 entrants (that have managed to compile). The games seem to result in considerably different results for small changes to the initial conditions, so the same playes can result in one winning easily in one game and then the other winning easily in another (try testing the same two players several times). Anyway you are doing much better than me.

To my previous post, I have managed to contact the organisers via the editor of Queue. It seems that the file upload only takes the first two files, although five file slots are shown. However one can click the 'add field' button and then it will take an extra file. This possibly only affects my browser or something (Firefox 3.5).

Nathan Kronenfeld replied on Mon, 2010/02/01 - 11:25am in response to: Martin Ellison

ME: I haven't had any problem with uploading, but I always add extra fields before doing anything else. For what it's worth, I tend to use chrome to upload.

It does seem like the number of new entries have been ramping markedly down. I suspect the public rankings at this point are discouraging people - making the leaders seem uncatchable, when in fact, the current numbers are completely meaningless towards the contest.

That and a week being a very short time to program this sort of thing :-)

I could find myself wishing they'd publicized this better before releasing the contest problem - I only heard about it on the day it started, and it just happened to catch my attention and interest quickly. If I'd been busier that week, or away, coming back to it unsuspecting with a week less time to do it than everyone else, I'd probably have assumed I had to little a chance of getting anywhere to bother entering.

A round robin afterwards would be fun, though - and congrats, RR, for getting on top again.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.